Forum: Mikrocontroller und Digitale Elektronik Fehler beim Timer0 zuweisen


von Ein neuer :) (Gast)


Lesenswert?

Hallo zusammen

Ich versuche einen Atmega88 mit dem AVR Studio 6 in Assembler zu 
programmieren.
Bis jetzt klappt soweit auch alles, aber beim zuweisen des Timers kommt 
immer eine Fehlermeldung.

.NOLIST
.include "m88def.inc"
.LIST

...

;Timer0 Einstellung
LDI Temp, 1<<CS02 | 0<<CS01 | 1<<CS00  ; Timer0 einstellen
OUT TCCR0B, Temp                       ; ""
LDI Temp, 1<<TOIE0                     ; Timer0 Überlauf aktiviert
OUT TIMSK0, Temp                       ; ""

...

Fehler 1: Operand 1 out of range: 0x6e

Der Fehler bezieht sich auf die letzte Zeile (OUT TIMSK0, Temp)

Ich kann mir nicht helfen, sind genau die Angaben wie im Datenblatt. Ist 
eventuell die include-Datei falsch oder defekt? Auf welche wird genau 
verwiesen? Ich hab mal geschaut, wenn ich auf dem PC danach suche findet 
der einige ;)

MfG

von spess53 (Gast)


Lesenswert?

Hi

Sts statt out verwenden.

MfG Spess

von Ein neuer :) (Gast)


Lesenswert?

Cool danke jetzt gehts :)

Seid wann ist das denn so? Hab das früher auch so mit dem Atmega8 
programmiert und da hat das mit dem OUT immer bestens funktioniert.

Für was brauhc ich dann noch den OUT - Befehl, wenn ich das mit dem STS 
machen kann?

MfG

von spess53 (Gast)


Lesenswert?

Hi

Mit dem OUT-Befehl (1 Word) kannst du nur einen bestimmten Adressbereich 
ansprechen. Beim ATMega8 liegen alle IO-Adressen innerhalb dieses 
Bereichs. Beim ATMega88 nicht mehr. Und die Adressen werden dann mit STS 
(2 Word) angesprochen.

MfG Spess

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.