Erweiterte m16M1def.inc

OP #4297226
Lesenswert?

Hallo, da ich nicht gerade die schnellste Hardware habe arbeite ich noch 
mit der letzen AVR-Studio Version 4.19....

Im Datenblatt habe ich folgende Angabe gelesen
>Bit 5 – RTGEN
>Set this bit to enable the ICP1A as a timer/counter retrigger input. (This bit is 
>reserved for future use. For ensuring compatibility with future devices, this bit 
>must be written to zero when TCCRnB is written).

bisher habe ich das immer binär geschrieben, und es gab keine Probleme
1
ldi temp, 0bxx0xxxxx   ;Komentar Bit7=ICNC1 Bit6=.........
2
out tccr1b, temp

nun bin ich dazu übergegangen direkt die Symbole hinzuschreiben
1
ldi temp, (0<<ICNC1)|(0<<ICES1)|(0<<RTGEN)|(0<<WGM13)|(0<<WGM12)|(1<<CS12)|(0<<CS11)|(0<<CS10)
2
out tccr1b, temp

Das AVR-Studio brachte die Fehlermeldung
>error: Undefined symbol: RTGEN

in der m16M1def.inc Datei ist dieses eine Bit nicht definiert, was ich 
jetzt nachträglich im TCC1B Bereich gemacht habe.
1
.equ  RTGEN  = 5  ; Retrigger Input fuer ICP1 Pin

Das Problem ist jetzt weg.

Anbei die geänderte Datei einfach über die alte im Verzeichniss 
\Atmel\AVR Tools\AvrAssembler2\Appnotes kopieren.

Ist das bei den neueren Studioversionen korrigiert worden? Ansonsten 
würde ich es Atmel mal schreiben, möchte ungern das ganze Paket 
installieren/deinstallieren um mir diese Datei anzusehen.
Angehängte Dateien:
OP #4297301
Lesenswert?

ja wenn man das Register vorher gelöscht hat kann man darauf verzichten, 
wenn ich jetzt aber sowieso einzelne Bits ändere kann ich da auch die 0 
mit aufnehmen dauert ja keinen Takt länger. Habe ich vorher mittels
ldi temp, 0bxxxxxxxx auch schon gemacht und dann gibts keine vorherigen 
Reste im Register ich spare mir also einen Takt und habe trotzdem 
saubere Verhältnisse.

Habe aber verstanden woraus du  hinaus willst Null bleibt Null, aber man 
weiß ja nicht ob da schon vorher eine Null war, wenn man ein temporäres 
Register verwendet.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren