www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Probleme mit AVR Studio


Autor: Gregor Rudorfer (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Jörg X. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Gregor Rudorfer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie kann ich dann auf diese Register zugreifen?

Autor: 2919 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nun, du musst natuerlich den Registersatz importieren. Sonst ist nichts.

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

.LISTMAC

.def irgendwas = r16
...
...

Autor: Jörg X. (Gast)
Datum:

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

hth. Jörg

Autor: Spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

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

MfG Spess

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.