PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Wie Registernamen nutzen?



rogerberglen
11.08.2007, 23:34
Ich habe mit der Direktive ".include TN15def.inc" den ATtiny15 Controller angegeben. Nun wollte ich mit "ldi DDRB,0x01" das Port Direktions-Register beschreiben. Aber Pustekuchen! AVR meldet "Test003.asm(18): error: Invalid register"!!
Warum gibt es das Register nicht! Ich dachte daß in AVR solche Registernamen bekannt wären über die Direktive .include TN15def.inc.
Was läuft da falsch???

izaseba
11.08.2007, 23:47
Ich glaube es nicht, habe eben einen Ausflug in Deine Beitraghistory gemacht, und doch:


Ich will dan eigentlich nur mit dem Befehl LDI ADMUX,$01 eine 1 in das Register schreiben. AVR sagt dann lapidar "Invalid Register".

Hast Du mal gefragt, darauf habe ich das geschrieben:



Und hier ist der Fehler,
Es geht so nicht!
Du mußt schon den Umweg über einen Universallregister > 15 machen z.B.
ldi r16,0x01
out ADMUX,r16


Mir fehlen die Worte...

rogerberglen
11.08.2007, 23:52
Entschuldigung! Aber ich komme da immer wieder in mein 8048-Assmembler zurück da kann man direkt irgendwelche Register beschreiben. Da kann man über LDI TCNT0,$40 das Timerkontrollregister mit dem Wert $40 beschreiben.