www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Analog Digital Wandeln


Autor: schäpers (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

Ich habe jetzt seit 2 Tagen gegoogelt und finde nicht das was Ich
suche. Meine erfahrung in avr sind ungefähr note 3. Allerdings habe Ich
in sachen ADC noch keine erfahrung. Ich wollte ein Lauflcht
Programmieren dessen Zeit Ich über den ADC einstellen kann (anhand
eines Potis) allerdings wenn Ich nach grundlagen oder Beispieltexten
suche bekomme Ich meistens dieses: Amazon, in C oder Bascom.
Kann mir da einer Tipps geben oder kennt einer ein ähnliches Projekt.?

Gruß

Autor: <pre><post><paste> (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Setzen, 6

Atmel Datenblatt mit Source und sehr detaillierter Erklärung.

Autor: schäpers (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
So weit war ich auch

Autor: michael (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hi,

also das mit dem adc funktioniert ungefäht so:


ADMUX &= 0xF8;  // MUX Bits zuruecksetzen
ADMUX |= Kanal;  // Aktuelle MUX Bits aktivieren
ADCSRA |= (1<<ADSC);  // eine Wandlung
while(!(ADCSRA&(1<<ADIF)));  // warte bis wandlung abgeschlossen
ADCSRA |= (1<<ADIF);
analogwert = ADC;       // Wert auslesen

gruß michael

Autor: Philipp Burch (philipp_burch)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

sieh dir das Datenblatt an. Da hat's eine Section "Analog-to-digital
converter" oder sowas. Da ist genau beschrieben, welche Register was
beinhalten müssen, damit das funktioniert. Ich muss allerdings auch
ehrlicherweise zugeben, dass ich es selten im ersten Mal hinkriege,
dass das richtig läuft. Aber dazu hat man ja den Simulator.
Ich würde dir folgende Einstellungen empfehlen:
- VRef intern an Vcc koppeln
- Ergebis links ausrichten (ADLAR = 1)
- Interrupt aktivieren
- Beim Start des Programms und bei jedem ADC-Interrupt-Aufruf eine
Konversion starten

Autor: Michael Borrmann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich hatte mal das gleiche problem (wie wohl jeder mal ;) )
...
habs dann anhand des datenblattes irgendwann ganz gut hinbekommen...
ausserdem gibt es auch ein zwei seiten die man bei google findet, die
das thema ganz gut durchleuchten...

leider habe ich den sourcecode nicht hier, aber wie gesagt, datenblatt
und ein bisschen googeln, dann müsste es eigentlich klappen..

Autor: schäpers (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke an alle erst mal, ich werde es so versuchen.

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
im wiki gibt es auch eine ganz gute seite mit codebeispiel.

Autor: schäpers (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sorry was meinst du genau mit wiki?

Autor: <pre><post><paste> (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
tja, lesen ist nicht jedermann Sache, gell?

Autor: Michael Borrmann (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Also, jetzt habe ich mein kleines programm da...
ist alles einfach und selbsterklärend... den Mittelpin des Potis an
Port D 1 anschliessen, die anderen beiden an Gnd und Vcc...

der eingelesene wert ist ja noch 10 bit (ist beim avr so), wird nach
8-git umgewandelt, dann gibts ne kleine routine die einen Pointer in
nem Lookuptable rumfährt und den dort per lpm ausgelesenen wert an die
LEDs an PortB ausgibt, aber den teil brauchst du natürlich gar nicht
unbedingt (schaut aber nett aus ;) )..

wenn du noch fragen zu nem bestimmten part hast, dann sag einfach
bescheid..

Autor: Michael Borrmann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
achja, wie ich gerade sehe musst du noch die zeile

.include "routines.inc"

aus dem quelltext entfernen...

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.