LCD PIC problem

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: LCD PIC problem

Inlägg av sodjan »

> Hur fungerar och vad gör macron?

MPASM manulen (http://ww1.microchip.com/downloads/en/D ... 30400g.pdf)
Kapitel 7 "Macro Language".

> Det lägger en start adress i eeprom? men vad e adressen?

Om du läser kapitlet om Macro så ser du nog det. Passa även på att kolla upp
"high" och "low" om du inte redan har det helt klart för dig. Resten står i kapitlet
om EEPROM/Flash i databladet.

> Blir lcd_text1 en start adress i minnet för infot efter "data" eller hur funkar det?

Korrekt.
Direktivet (minns inte vilket det var) skapar en text-sträng i flash (program-) minnet
och symbolen som anges på samma rade sätts till värdet av den adress där strängen skapas.

> Och hur\när läggs texten in i minnet?

Här är jag inte med riktigt på vad du frågar om.
Det är bättre att du mer tydligt anger vad som var oklart i MPASM manualen kapitel 4.15.
(Det låter faktiskt som om du inte har kollat alls, men det låter inte riktigt rimligt...)

> ...och vad gör code?

Sluta omedelbart med rena RTFM frågor !!
Läs istället MPASM manualen kapitel 4.9.

> error147(Directive only allowed when generating an object file)

Du jar "glömt" att lägga till LKR filen till projektet.
Se "Konfigurering" på den här sidan : http://www.jescab.se/Info_MPLAB.html
Användarvisningsbild
luffare
EF Sponsor
Inlägg: 132
Blev medlem: 4 oktober 2005, 16:25:21
Ort: Uppsala
Kontakt:

Re: LCD PIC problem

Inlägg av luffare »

hehe ok ok tack för länken ska genast läsa på :)

Edit: Länken var bara till nån fusk lapp med kommandon, hittar inte manualen, hittar bara den här:
http://ww1.microchip.com/downloads/en/D ... 33023a.pdf
Edit2: äntligen... jobbig sökfunktion...
Användarvisningsbild
luffare
EF Sponsor
Inlägg: 132
Blev medlem: 4 oktober 2005, 16:25:21
Ort: Uppsala
Kontakt:

Re: LCD PIC problem

Inlägg av luffare »

Sodjan:
Sådärja det blev lite läsning men nu har du tvingat mej att lära mej hur relocatablemode och macron funkar och det var lika bra :)
Men jag är lite osäker när det gäller variablerna,
t.ex
var udata
var1 res 1
var2 res 1

ligger båda i samma bank nu?
blir ganska många bank byten om man inte andvänder shr
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: LCD PIC problem

Inlägg av sodjan »

Varje gång du använder (någon av) udata direktiven så skapas en "data section".
En viss section kan inte ligga i flera banker, utan länkaren (MPLINK) väljer en
(den första) banken där det finns plats (beror alltså på hur många RES du har
i just det fallet). I ditt exempel så kommer alltså var1 och var2 alltid att ligga
i samma bank, vilken det blir avgör dock länkaren (MPLINK). Dock tror jag att
MPLINK normalt fyller på nerifrån, så att säga, d.v.s tills BANK 0 blir full.

Om du tittar i MAP filen i ditt fall så ser du att det har skapats en section som heter "var"
(alltså det namn/symbol som du har på UDATA raden).

Sen kan du även tvinga dina RES att gå mot en viss bank genom att ange ytterligare
en parameter efter UDATA, antingen en fast adress eller en namn på en speciell section
som man kan skapa genom att redigera LKR filen. Men detta blir lite överkurs. Enklast är
att skapa grupper med RES som du vet att du kommer att använda tillsammans, då kommer
de i samma bank, och man kan optimera bort en del BANKSEL direktiv.

För de fall där man har max 16 variabler (inte helt ovanligt i mindre projekt) så är
det enklast att köra dom mot UDATA_SHR allihop.

Eller att i alla fall ha sina vanligaste (mest frekventa) variabler i UDATA_SHR (som kan köras
utan BANKSEL) och sedan allokera övriga med UDATA.
Användarvisningsbild
luffare
EF Sponsor
Inlägg: 132
Blev medlem: 4 oktober 2005, 16:25:21
Ort: Uppsala
Kontakt:

Re: LCD PIC problem

Inlägg av luffare »

vad bra då förstår jag, kör alla i udata_shr just nu men ville ändå veta till nästa gång.
En annan fråga som jag glömde är att vad händer när man adderar 0x80 till vald adress/rad på lcd:n? (står inget om det i databladet till lcd:n)
Skippade den delen först men det buggade ur andra gången man vill skriva text(lcd_text2). Har ett hex värde i början av texten istället för två decimaltal som anger positionen, men jag måste ändå addera 0x80 för att det ska funka andra gången jag skriver ut text.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: LCD PIC problem

Inlägg av sodjan »

Adressen bort bli 0x80 högre !?

Förstår inte, varför lägger du till 0x80 ?
Användarvisningsbild
luffare
EF Sponsor
Inlägg: 132
Blev medlem: 4 oktober 2005, 16:25:21
Ort: Uppsala
Kontakt:

Re: LCD PIC problem

Inlägg av luffare »

om jag ställer in 0x43 på lcd:n så börjar texten skrivas ut på rad 2 tecken 4.
men om jag först skriver på tex 0x00 och sedan byter till 0x40 så blir den andra texten osynlig eller krockar och buggar ihop sej med föregående text.
Men om jag kör addwf (t.ex0x80+0x43) = ny adress så skrivs alla texter ut korrekt.
Fattar inte riktigt varför? första raden och tecknet har väl adressen 0x00 och inte 0x80+0x00
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: LCD PIC problem

Inlägg av sodjan »

Det du säger är att du *tror* att du gör det ena och det andra.
Men du har ju inte visat att du faktiskt gör det. Sannolikt gör du fel...
Användarvisningsbild
luffare
EF Sponsor
Inlägg: 132
Blev medlem: 4 oktober 2005, 16:25:21
Ort: Uppsala
Kontakt:

Re: LCD PIC problem

Inlägg av luffare »

Nu har jag dubbel kollat igen och jag glömde bort att att man ska sätta bit7 för att lcd:n ska veta att dom andra bitarna är adressen.
bit7=1 ger 0x80
bit0-6 0x00-0x0F adresserna på rad 1
och 0x40 - 0x4F adresserna på rad 2
Det var klantigt av mej men tack för hjälpen
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: LCD PIC problem

Inlägg av sodjan »

Aha, så kanske det är ja. Ja, det ligger ju inte riktigt i själva "adressen"... :-)
Skriv svar