Hallo an alle! Ich habe ein ernstes Problem mit dem AVR Studio. Ich möchte einen ATMEGA 168 programmieren und ich komme einfach nicht weiter, weil das AVRStudio die Register des Timers 1 und 2 einfach nicht kennt. So ist es auch bei allen anderen Komponenten des AVR, dem ADC, der USART usw. Der einzige Prozessor der in diesem Zusammenhang einwandfrei funktioniert ist der ATMEGA 8. Wenn ich mir im Fenster I/O View die einzelnen Register mit deren Adressbezeichnungen ansehe, fällt mir folgendes auf: Nehmen wir den Timer 1 beim ATMEGA 168 her: Register TIFR1 --> Address: 0x16 (0x36) Alle anderen Register des Timers haben in der Address - Spalte folgende Angaben na (0x80); na (0x81) Beim Compilieren des Programms gibt das Programm dann für jedes Register, wo vor der Hexzahl in runden Klammern ein "na" steht einen Fehler aus. Ich hab das AVR Studio schon deinstalliert und neu installiert, doch ohne Erfolg. Hat vielleicht jemand von euch eine Ahnung wie ich dieses Problem lösen könnte?? PS AVR Studio Version 4.13 Service Pack 1 Build 557
Hast du mal in Datenblatt geschaut (besonders auf: "Register Summary") ? Für alle Register ist die Adresse angegeben, einmal als IO- und einmal als SRAM-Adresse in Klammern. Alle Register, deren SRAM-Adresse größer ist als 0x3f(->SREG), können nicht mehr mit den ASM-Befehlen IN und OUT angesprochen werden und haben folglich keine IO-Adresse. Also ist doch alles in Ordnung... rtfm Jörg
Nun, du musst natuerlich den Registersatz importieren. Sonst ist nichts. .nolist .include "m169def.inc" ; includes '.device ' directive .list .LISTMAC .def irgendwas = r16 ... ...
> Wie kann ich dann auf diese Register zugreifen?
Genauso, wie auf den SRAM -> STS (oder ST, STD), LDS (LD, LDD...)
hth. Jörg
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.