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?
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
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...
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!
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".
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!
Edit: Smiley!
Senast redigerad av vfr 30 november 2008, 10:02:54, redigerad totalt 1 gång.