MPASM macro fråga

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Användarvisningsbild
Bosen
Inlägg: 1753
Blev medlem: 18 juli 2005, 10:56:31
Ort: Karl Gustav, Varberg
Kontakt:

MPASM macro fråga

Inlägg av Bosen »

Om man läser nedanstående kod och letar upp macrot lcdtext så ser man där att detta macro skapar en lookup-table av dess up till 16 tecken som man har skickat med i sin "sträng" (text).

Kan någon förklara hur detta funkar?!
hur kan den skapa en lookuptable med hjälp av dessa rader?

Kan jag göra samma sak för min PIC16F648A??



Bild
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

Ta bort *bilden* och klipp in *text* istället...

Men svaret på din fråga är "dt".

Och ska det verkligen stå "Poruka" där det gör det ?

> Kan jag göra samma sak för min PIC16F648A??


Jorå, det bör gå, men notera att den inte är speciellt ekonomisk med
programminne. Gör någon test och se vad som skapas...
Användarvisningsbild
Bosen
Inlägg: 1753
Blev medlem: 18 juli 2005, 10:56:31
Ort: Karl Gustav, Varberg
Kontakt:

Inlägg av Bosen »

anledningen att det blev en bild är att jag gjorde det enkelt för mig. Bilden kommer frånDenna sidan.
Om det ska stå poruka där har jag ingen aning om... men mikroelektronika är nog ett polskt företag eller liknande... så det kan kanske stämma :)

Tack för svaret sodjan!
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

Kroatiskt eller Slovenskt eller något sådant, om jag inte har fel.

Ser ut som om de inte vill att man ska kopiera koden.
Användarvisningsbild
Bosen
Inlägg: 1753
Blev medlem: 18 juli 2005, 10:56:31
Ort: Karl Gustav, Varberg
Kontakt:

Inlägg av Bosen »

nä... dom vill nog att man skall köpa boken, för då får man med en cd-skiva...
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

Hur som helst, har det klarnat hur det fungerar ?
Användarvisningsbild
Bosen
Inlägg: 1753
Blev medlem: 18 juli 2005, 10:56:31
Ort: Karl Gustav, Varberg
Kontakt:

Inlägg av Bosen »

japp... det klarnade direkt... jag fattade inte att dt va ett kommando..... :)
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

Hm, jo, i princip. Direktiv är nog annars rätt benämning. :-)
Alltså något som används för att "styra" MPASM på olika sätt,
i detta fall ("dt") för att generera RETLW instruktioner...
Användarvisningsbild
Bosen
Inlägg: 1753
Blev medlem: 18 juli 2005, 10:56:31
Ort: Karl Gustav, Varberg
Kontakt:

Inlägg av Bosen »

ok... men jag använder det nog inte i detta sammanhanget i alla fall... det ser ju "snyggt" ut i koden... men om man skall skriva ut mycket test på en display så upptar det ju lite mycket programminne som du säger....men det finns nog tillfällen där "dt" är mycket användbart känns det som!
Användarvisningsbild
vfr
EF Sponsor
Inlägg: 3515
Blev medlem: 31 mars 2005, 17:55:45
Ort: Kungsbacka

Inlägg av vfr »

Hur hade du tänkt lagra textsträngarna då?

Jag håller med om att det är ineffektivt, men det finns tyvärr inte så många alternativ på en PIC16.
Användarvisningsbild
Bosen
Inlägg: 1753
Blev medlem: 18 juli 2005, 10:56:31
Ort: Karl Gustav, Varberg
Kontakt:

Inlägg av Bosen »

jag får helt enkelt skicka ett tecken åt gången... altså inte några strängar alls!
bearing
Inlägg: 11677
Blev medlem: 2 mars 2006, 01:01:45
Ort: Ängelholm

Inlägg av bearing »

Det borde väl vara ännu mer ineffektivt att anropa funktionen en gång för varje tecken? Då krävs två instruktioner för varje tecken (movlw + call). Här krävs endast en instruktion per tecken (plus en fast mängd).

Den här lösningen gör väl dock att samma sträng måste sparas två gånger om den ska skrivas ut på två olika ställen i programmet. Bättre då att göra egna retlw-funktioner och sedan använde dem som argument till ett "skriv-sträng-makro".
Användarvisningsbild
vfr
EF Sponsor
Inlägg: 3515
Blev medlem: 31 mars 2005, 17:55:45
Ort: Kungsbacka

Inlägg av vfr »

Visst, skall man bara testa några tecken så duger det ju utmärkt att ladda tecknet och sedan anropa utskrift separat för varje tecken man ska ha ut. Skall man ha lite mera text så blir det ännu mer ineffektivt än strängar med bara "retlw", precis som bearing säger. Men nu har du iallafall alternativen, sedan gör du som det passar dig och din applikation för stunden. Har du mer frågetecken så får du självklart återkomma! :D

Edit: Smiley!
Senast redigerad av vfr 30 november 2008, 10:02:54, redigerad totalt 1 gång.
v-g
EF Sponsor
Inlägg: 7875
Blev medlem: 25 november 2005, 23:47:53
Ort: Kramforce

Inlägg av v-g »

Man kan ju lagra texten i eeprom också, men det blir ju inga biblar precis :)
Skriv svar