ASM minták?
avr assebler
Sziasztok! én asm_ be szeretnép programoznia ATtiny13_at . Ehez szeretnék egy két példaprogramot ha lehet .elöre is köszönöm
Egy tuti step-by-step tananyag Mega8 chipre.
Az ASM-t nagyon jól leírja:
http://www.avrbeginners.net/
Az ASM-t nagyon jól leírja:
http://www.avrbeginners.net/
Re: ASM minták?
Sziasztok
nagy keserven sikerült összeraknom a berendezésemet (két léptetömotor idövezérlése), és a 4x16 karakteres display is csatlakoztatva, söt az elsö sorban van már tisztességes szöveg is, csak valahogyan nem tudok rájönni, hogyan kell a második (3. 4.) sorba szöveget irni.
Azt irja a nagykönyv hogy ebben a kodban Konfig: 0b001dnfxx az "n" betü mondja meg melyik sorba irom a szöveget, de nem tudom, hova kell a kodot berakni.
Kösz a segitséget.
nagy keserven sikerült összeraknom a berendezésemet (két léptetömotor idövezérlése), és a 4x16 karakteres display is csatlakoztatva, söt az elsö sorban van már tisztességes szöveg is, csak valahogyan nem tudok rájönni, hogyan kell a második (3. 4.) sorba szöveget irni.
Azt irja a nagykönyv hogy ebben a kodban Konfig: 0b001dnfxx az "n" betü mondja meg melyik sorba irom a szöveget, de nem tudom, hova kell a kodot berakni.
Kösz a segitséget.
Éljenek a vonatok!
http://www.youtube.com/playlist?list=PLF2674BF4E3765682
http://www.youtube.com/playlist?list=PLF2674BF4E3765682
Re: ASM minták?
HD44780 LCD kijelzés:
1234567890123456
1234567890123456
1234567890123456
1234567890123456
És ez a belső memóriában:
00-19: 12345678901234567890
20-39: 12345678901234567890
40-59: 12345678901234567890
60-79: 12345678901234567890
Azaz a sorok: 1,3,2,4 és a 7890 karakterek nem látszódnak.
1234567890123456
1234567890123456
1234567890123456
1234567890123456
És ez a belső memóriában:
00-19: 12345678901234567890
20-39: 12345678901234567890
40-59: 12345678901234567890
60-79: 12345678901234567890
Azaz a sorok: 1,3,2,4 és a 7890 karakterek nem látszódnak.
Re: ASM minták?
Kösz, de nem nagyon értem, hogy mit is kell csinálnom.
Éljenek a vonatok!
http://www.youtube.com/playlist?list=PLF2674BF4E3765682
http://www.youtube.com/playlist?list=PLF2674BF4E3765682
Re: ASM minták?
Hali!
Mivel nem sorfolytonos memória, ezért át kell váltani a címet a következő sor elejére.
(vagy pozícionálhatod bárhova akár)
Asm-el hajtod?
Parancs módban kiteszed a buszra 0B10000000-es értéket, alsó 7 bit a memória címe.
Hogy egyes sorok hol kezdődnek a memóriában, azt kísérletezd ki.
Mivel nem sorfolytonos memória, ezért át kell váltani a címet a következő sor elejére.
(vagy pozícionálhatod bárhova akár)
Asm-el hajtod?
Parancs módban kiteszed a buszra 0B10000000-es értéket, alsó 7 bit a memória címe.
Hogy egyes sorok hol kezdődnek a memóriában, azt kísérletezd ki.
Re: ASM minták?
Tehát valami iiyesmit:
Ez a T betüt a 2. sor elsö helyére irja? Az lcd_data eddig szépen sorba kiirta a betüket, de mindig az elsö sorba.
Kód: Egész kijelölése
Ldi r16, 0b1000000 ; sorváltás
Rcall lcd_command
Ldi r16, ´T´. ; A T betü kiirása
Rcall lcd_data
A hozzászólást 1 alkalommal szerkesztették, utoljára etwg 2013. szeptember 17. kedd, 20:37-kor.
Éljenek a vonatok!
http://www.youtube.com/playlist?list=PLF2674BF4E3765682
http://www.youtube.com/playlist?list=PLF2674BF4E3765682
Re: ASM minták?
Hali!
Nem ez így az első sor elejére teszi a "kurzort", mivel az van a nulladik címen.
A parancs utolsó 7 bitje a cím, ami így nulla.
Így teszi 20-ra, ami lehet hogy a második sor eleje:
Ldi r16,0b10010100
Rcall lcd_command
Vagy 40-re:
Ldi r16,0b10101000
Rcall lcd_command
Nem ez így az első sor elejére teszi a "kurzort", mivel az van a nulladik címen.
A parancs utolsó 7 bitje a cím, ami így nulla.
Így teszi 20-ra, ami lehet hogy a második sor eleje:
Ldi r16,0b10010100
Rcall lcd_command
Vagy 40-re:
Ldi r16,0b10101000
Rcall lcd_command
Re: ASM minták?
Kösz majd holnap kiprobálom.
Azért zavar, mert az hittem, hogy a 0b1000 0000 val a második sorra kapcsolok, és onnan folytathatom az irást.
A display 4 soros lesz ( most még csak 2 soroson gyakorolok ).
Az elsö és 3. Sorban fix szöveg lesz, az alattuk levö 2. és 4. sorban meg a hozzájuk tartozo változok értéke.
Azért zavar, mert az hittem, hogy a 0b1000 0000 val a második sorra kapcsolok, és onnan folytathatom az irást.
A display 4 soros lesz ( most még csak 2 soroson gyakorolok ).
Az elsö és 3. Sorban fix szöveg lesz, az alattuk levö 2. és 4. sorban meg a hozzájuk tartozo változok értéke.
Éljenek a vonatok!
http://www.youtube.com/playlist?list=PLF2674BF4E3765682
http://www.youtube.com/playlist?list=PLF2674BF4E3765682
Re: ASM minták?
A 2. és 4. sor elérése a leglassabb! -> Lsd memóriaszervezés.
Sorra kapcsolsz: na ilyen funkció nincs. Lsd HD44780 chip adatlap.
HOME, shiftcursor left/right és a memóriába írás. Ezekkel a parancsokkal gazdálkodhatsz!
Sorra kapcsolsz: na ilyen funkció nincs. Lsd HD44780 chip adatlap.
HOME, shiftcursor left/right és a memóriába írás. Ezekkel a parancsokkal gazdálkodhatsz!
Re: ASM minták?
Egy kicsit érdekes ez a dolog. Elolvastam lassan egy könyvre valo anyagot a displayekröl. Az egyik másikban azt irják, hogy a négysoros display valoban " kétsoros" azaz az elsö sor 21. karaktere (4x20 esetben ) a 3. sor elsö helyén van.Robert írta:A 2. és 4. sor elérése a leglassabb! -> Lsd memóriaszervezés.
Sorra kapcsolsz: na ilyen funkció nincs. Lsd HD44780 chip adatlap.
HOME, shiftcursor left/right és a memóriába írás. Ezekkel a parancsokkal gazdálkodhatsz!
Egy másik anyagban meg a 4 sor valojában 1 sor:
1.sor. 1-20
2.sor. 41-60
3.sor. 21-40
4.sor. 61-80
Hogy mi ebben a kétsoros az számomra rejtély ( és ez tévesztett meg ).
Szerencsére maga a kijelzés sebessége nem lényeges, mert percekben-orákban számolunk ( nagyon lassu folyamatok vezérlése).
Na mindegy, ha ma sikerül a két sor, akkor este kiprobálom a 4 sort is.
Éljenek a vonatok!
http://www.youtube.com/playlist?list=PLF2674BF4E3765682
http://www.youtube.com/playlist?list=PLF2674BF4E3765682
Re: ASM minták?
A HD44780 adatlapot leasd meg. A kijelzőchipek ez alapján működnek.
Ha az újabb KS0066 vagy KS0077-es chip van rajta, azokat _kompatibilis_ módban használja mindenki. De ha akarsz el lehet menni ezirányba is (itt lehet sorkeverés, gyorskódok, stb). Viszont esetleges kijelzőcserekor szívatod magadat... mert nem érted miért nem megy...
Ha az újabb KS0066 vagy KS0077-es chip van rajta, azokat _kompatibilis_ módban használja mindenki. De ha akarsz el lehet menni ezirányba is (itt lehet sorkeverés, gyorskódok, stb). Viszont esetleges kijelzőcserekor szívatod magadat... mert nem érted miért nem megy...