Hi, im Anhang ist der Quelltext für den Attiny 2313. Er sollte per multiplexing 3 siebensegmentanzeigen ansteuern, aber dabei kommt nur "wirres Zeug " raus. dh.: Wenn man in die Register ein, zehn und hundert die "5"lädt, wird nicht 5 angezeigt, sondern irgendwas...am font liegt es nicht, die anzeigen machen unabhängig voneinander den fehler Ich finde meinen Fehler nicht, kann sich evtl. jmd den Quelltext ansehen? Danke. Mfg Und3rt4ker
Ich glaube, da fehlt was. Ich sehe, daß du die Font-Basisadresse in ZH:ZL einlädst. Dann addierst du den Ziffernwert zu ZL dazu. Und da liegt, glaube ich mal, das Problem. Wenn die Fontdaten über eine Seitengrenze hinausgehen, läuft ZL über und er lädt stattdessen den Inhalt vom Seitenanfang ein. Lösen könnte man es so:
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
add immediate mit carry kann der AVR leider nicht, deshalb über den Umweg eines auf 0 gesetzten Registers. Wird der Überlauf vergessen, fehlt anschliessend der Seitenwechsel. Die mit 'neu' gekennzeichneten Stellen auch in den beiden anderen Blöcken einbauen. Die auskommentierten Zeilen können auch aus den anderen Blöcken raus, sofern vorhanden. Gruss Jadeclaw
ist es eigentlich egal ob man: font: .db XXXX,XXXX,XXXX,XXXX oder font: .db XXXX .db XXXX .db XXXX .db XXXX schreibt? Das müsste doch äquivalent sein. mfg
Nein. Zumindest in Atmels Assembler erzeugt .DB immer eine ganze Anzahl Worte. Folglich ist .db 1 .db 2 äquivalent zu .db 1,0 .db 2,0
Jou, gibt aber auch entsprechende Warnings aus ("...Padding zero
byte...").
ja^^, ist mir jetzt auch gerade aufgefallen. Danke g
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.