mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Atmega48(Register ADC)


Autor: tom (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich möchte beim Atmega48 den AD-Wandler Register ansprechen.
Ich benutze AVR Studio 4.13 und Programmiere in Assembler.
Mein Problem ist, dass ich auf die Register des ADC nicht zugreifen 
kann.
Beim AVR Studio steht vor dem Register NA.
Habe Bei der Atmega48 Dokumentation nichts gefunden, wie man die 
register anspricht.
Ich danke für jeden Tip im vorraus.

Autor: Johannes M. (johnny-m)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das sind zwei Register, ADCH und ADCL, und die müssen in Assembler 
separat (und in der richtigen Reihenfolge) ausgelesen werden. ADC gibts 
in Assembler nicht, nur in Hochsprachen...

Autor: tom (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Johannes: Danke, es liegt also daran, dass wir Assembler benutzen. Nur 
was ich nicht verstehe, ist, warum man beim Atmega8 in Assembler die 
Register ansprechen kann.

Autor: Johannes M. (johnny-m)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ein Register "ADC" gibt es auch beim ATMega8 nicht, es sei denn, Ihr 
habt da irgendwas selbst definiert. Da das Ergebnis des ADC zunächst 10 
Bit breit ist, passt es generell nicht in ein 8-Bit-Register und kann 
demzufolge auch nicht in einer einzigen Operation ausgelesen werden. Es 
sind zwei Register, sowohl beim ATMega8 als auch bei anderen AVRs mit 
A/D-Wandler, und die heißen auch überall gleich.

Autor: Kai G. (runtimeterror)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>was ich nicht verstehe, ist, warum man beim Atmega8 in Assembler die
>Register ansprechen kann.

Ich auch nicht... das sollte da auch nicht gehen. Kannst du mal den Code 
dazu posten?

Autor: tom (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Oh ... JA, erst mal Sorry, meine Beschreibung des Problems war nicht 
exakt genug.
Mein Problem:
Ich möchte den ADC benutzen, dafür muss ich auf bestimmte Register 
zugreifen um die Einstellungen durch zu führen.
Bei der Kompilierung, das die Adresse(des Register) ausserhalb des 
bereiches liegt. Beim AVRStudio gibt es einen Fenster, wo alle Register 
des Bausteins aufgelistet sind und bei allen den ADC-Registern steht ein 
"NA". (beim Atmel8 steht kein "NA").
Also mein Haubt-Problem ist, das ich auf alle Register, die eine "NA" 
vor sich stehen haben, nicht zugreifen kann.

zb.

ldi r16,0xff
out ADMUX

;oder
ldi r16,0x00
out PRR

Meine Werksuge:
 AVRStudio 4.13
 Assembler
 STK500

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

Dann sprech die Register mal mit 'sts' statt 'out' an. 'out' kann nur 
einen bestimmten Adressbereich abdecken.

MfG Spess

Autor: Johannes M. (johnny-m)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja, das ist ganz was anderes. Im ATMega48 liegen die I/O-Register des 
ADC im extended I/O-Space und können nicht mit "in" und "out" 
angesprochen werden. Da musst Du "lds" bzw. "sts" benutzen. "in" und 
"out" funktionieren nur bei den I/O-Registern mit Adressen bis 0x63.

Autor: tom (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
:) Ja danke viel mals, das wuste ich nicht. Da habe ich ja was neues 
dazu gelernt. :)

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.