Forum: Mikrocontroller und Digitale Elektronik Probleme mit AVR Studio


von Gregor Rudorfer (Gast)


Lesenswert?

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

von Jörg X. (Gast)


Lesenswert?

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

von Gregor Rudorfer (Gast)


Lesenswert?

Wie kann ich dann auf diese Register zugreifen?

von 2919 (Gast)


Lesenswert?

Nun, du musst natuerlich den Registersatz importieren. Sonst ist nichts.

.nolist
.include "m169def.inc"  ; includes '.device ' directive
.list

.LISTMAC

.def irgendwas = r16
...
...

von Jörg X. (Gast)


Lesenswert?

> Wie kann ich dann auf diese Register zugreifen?
Genauso, wie auf den SRAM -> STS (oder ST, STD), LDS (LD, LDD...)

hth. Jörg

von Spess53 (Gast)


Lesenswert?

Hi

Auf die Register kannst du mit 'lds' und 'sts' zugreifen.

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.