www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik A/D Cannel am AVR ??


Autor: Merle (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

Ich hab hier ne anfängerfrage aber hoffentlich kann mir jemand helfen.

Wie funktioniert der A/D Wandler eines AT90S4433 ? und wie aktviert man
ihn.

Mfg. Merle

Autor: Frankl (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Siehe Datenblatt

Autor: Martin Zunke (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich weiß nicht, wie sehr Du Anfänger bist. C? Assembler? Schon mal was
von Registern und Steuerwörtern gehört?

Wenn nicht, sag was.

:-) mz

Autor: Merle (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich bin Absoluter Anfänger und Arbeite mit Assembler und Yaap.

Mfg. Merle

Autor: Martin Zunke (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
OK

Ist nicht ganz einfach, aber ich versuche Dich mal wenigstens auf den
Weg zu bringen.

Da Du Assembler kennst, weißt Du ja wenigstens schon, was Register
sind. Port's an einem µC werden quasi durch Register innerhalb des
Prozessors abgebildet. Man greift also nie auf die Port's an sich zu,
sondern auf deren Register (8-Bit Register, jedes Bit steht für einen
Pin). Das zum einen.

Jetzt hast Du sicher mal mitbekommen, das es I/O Ports gibt. Input UND
Output. Aber wie das in der Welt der Bits so ist : 0 oder 1, entweder
oder. Um also festzulegen, ob ein Port(PIN) Ein- oder Ausgang ist,
existiert ein weiteres Register, in dem das festgelegt wird: bei AVR's
ist das das DDRx, wobei x für den entsprechenden Port steht. (Data
Direction Register X)

Damit kann man also festlegen, ob Ein oder Ausgang. A/D Channel liegen
auf so einem I/O Port. Da dieser Port aber  auch als digitaler Port (o
oder 1, respektive 0 Volt oder 5 Volt) verwendet werden kann, ,uß es
noch eine weitere Einstellungsmöglichkeit geben. Im einem sogenannten
Special Function Register wird genau das eingestellt Also ob der Port
als A/D Wandler betrieben werden soll oder nicht. Dazu dient das ADCSRA
Register und da ist Bit 7 das ADEN (A/D enable).

Das alles hilft Dir jetzt nicht konrket weiter. Aber eine ausführliche
Beschreibung kann man in einem solchen Forum nicht liefern. Merke Dir
einfach:

jeder Port hat viele Funktionen, eine muß ausgewählt werden

A/D Wandler, Analog Comparatoren und Interrupts können an und
ausgeschaltet werden

das alles passiert über spezielle Register, die werden in den Dokus
super beschrieben (bei Atmel wirklich super, ich kenne echt beschissene
Dokus, z.B. die von Siemens für ihre 80C51 etc)

Und dann: Zeit spielt eine große Rolle. Nicht immer ist es möglich,
alle Einstellungen für einen Port in einem Abwasch zu erledigen, auch
wenn alle Bits in ein und demselben Register gesetzt werden sollen.
Interrupt-Enables sollte man erst setzen, wenn die Modi eingestellt
sind. Denn wenn enabled, dann gehts ooch gleich ab. Das kann Probleme
bringen (siehe meinen Beitrag "Analog Comparator löst keine IRQ
aus")

Die Ergebnisse der Conversions werden wieder in eigenen Registern
abgelegt usw. und so fort....

Es ist NICHT einfach. Sinnvoll ist sicherlich der Kauf eines Buches,
einige Beiträge hier haben sich damit beschäftigt. Hol Dir da einen
Tipp...

Ich habe A/D noch nicht genutzt beim AVR, aber ich versuche mal eine
Liste aller für Dich relevanten Register anzugeben. Wenn Dein Programm
im Ablauf irgendwie mal mit allen zu tun hatte, dann haste was richtig
gemacht:

DDRA
SFIOR
ADCSRA
ADCL ADCH

(kein absoluter Anspruch auf Vollständigkeit, aber ein Versuch)

Sooo, alles ziemlich wirr, aber ich hoffe hilfreich. Ist nicht so ganz
einfach. Weil man nicht weiß, wie man das zusammenfassen soll. In
meinem Studium gab es zu diesem Thema im weitesten Sinne folgende
Fächer:

Digitale Systeme 1
Digitale Systeme 2
Microcontroller Prog.
Maschinenorientierte Programmierung
Labor für Mikrocontroller Programmierung

5 Semester, wie soll man die so schnell zusammenfassen?!

Ich hoffe, ich konnte Dir ein bißchen helfen

Autor: Merle (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja danke jetzt bin ich schon weiter.
Danke.

Mfg. Merle

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.