Forum: Mikrocontroller und Digitale Elektronik ATmega168 im AVR Studio


von semi b. (Gast)


Lesenswert?

Hallo, habe da folgendes Problem:

Ich möchte da gerne einen Atmel ATmega168 im AVR Studio
programmieren und dabei den 16 Bit Counter benutzen.
Wenn ich da auf die Register TCCR1B, ICR1, TIFR1 usw. zugreifen will
dann kommt folgende Fehlermeldung: error: Operand 1 out of Range:0xc1
bzw. Operand 2 out of Range: je nachdem wo es steht
Beim programmieren des ATmega32 mit dem selben Programm läufts
(Einstellungen des ATmega32 berücksichtigt).
Muss allerdings noch sagen, im Studio kann ich ja einige Einstellungen
im I/O View sehen und hinter den Registern steht "na". Hat das etwas
zu bedeuten? Liegt es vielleicht nur an der Inc. Datei?
Oder gibt es ein Programm womit ich den ATmega168 programmieren und
compilieren kann (Assembler, IDE)??? Dankeschön im Voraus...

von mmerten (Gast)


Lesenswert?

die timer-register liegen beim mega168 nicht mehr im I/O Bereich
0x00-0x3F IN/OUT sondern im Memory Mapped Bereich. Daher ist ein
Zugriff nur mit entsprechenden LDS/STS Befehlen möglich.

von semi b. (Gast)


Lesenswert?

Vielen Dank,
Daran hat es gelegen.
Nur folgendes Problem,wenn ich das dann mit STS und LDS mache  kostet
das zuviele Taktzyklen,gibt es keine schnellere Lösung?
Will das TCNT1L und TCNT1H ins RAM ablegen, mittels Zeiger X.
Dazu muss ich es in ein Arbeitsregister laden und im RAM ablegen.
Das sieht dann wie folgt aus:

                in ablage, tcnt1l  ;ablage= R16
    in eimer , tcnt1h  ;eimer= R17
    out tccr1b, rücksetzen ; rücksetzen= R18
    st x+, ablage
    st x+, eimer

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.