www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Hilfe bei A/D Wandlung


Autor: Björn (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

ich brauche Hilfe bei einem Problem: Eine do/while-Schleife soll dann 
starten wenn ein bestimmter Spannungswert am A/D Wandler meines Atmel 
mega16 Microcontrollers ereicht ist.


Wie müssen die Programmschritte aussehen, mit denen ich die Spannung 
meines Solarpanels (0 bis 2V) über den A/D - Wandler am 
Microcontrollerboard einlesen und weiterverarbeiten kann ?




Danke Björn




Autor: Maik Geßner (speedy)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
welche Sprache? C oder delphi pascal???

Autor: dins (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielleicht bringt dir was in der Art:

ADC im free running mode, ISR schreibt den ADC Wert in ne volatile 
Variable raus. Dann musst du im Hauptprogramm ja nur noch sowas wie
while(ADC_WERT < 2Volt) {} machen.
Also warten bis Bedingung erfüllt und danach dann die eigentliche 
Aufgabe.

Bei beiden Versionen muss halt noch eine Endloschleife außen rum.

while(true) {
  while(ADC_WERT < 2.0 Volt) {} //warten
  hier steht das, was du sonst so machen willst
  ADC_WERT=0; //sicherheitshalber
}

Autor: Björn (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Muss ich nicht den AD erst initialisieren?? Oder wie funktioniert das?

Autor: johnny.m (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Muss ich nicht den AD erst initialisieren??
Wenn Du willst, dass der ADC was ausspuckt, dann wirst Du das wohl tun 
müssen. Wenn Du auch noch erzählst, mit was für einem µC und in welcher 
Programmiersprache Du arbeitest, dann kann Dir vielleicht sogar jemand 
dabei helfen. Wenn es ein AVR ist, dann schau bitte ins Tutorial auf 
dieser Seite. Da steht das alles schön verständlich beschrieben.

Autor: rischi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich kenne dein problem, ich hatte dass selbe problem mit der AD 
Wandlung! www.ichkennmichaus.de! mlg

Autor: Björn (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe ein Pollin-Board mit einem ATmega 16 drauf. Ich möchte mir eine 
Spannug ein lesen und in einer Do While schleife einbinden damit meine 
schleife aktiviert wird.

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Antwort ist immer noch dieselbe:
Schau ins AVR Tutoril, dort steht wie man mit
dem ADC eine SPannung einliest.

http://www.mikrocontroller.net/articles/AVR-GCC-Tu...

Autor: johnny.m (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> und in einer Do While schleife einbinden damit meine schleife aktiviert
> wird.
Du weißt hoffentlich, dass eine do...while-Schleife immer mindestens 
einmal durchlaufen wird, auch wenn die Schleifenbedingung nicht erfüllt 
ist? Das nur am Rande... Für den Fall, dass Du vielleicht doch eher ne 
while-Schleife meintest.

Autor: Sonic (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn du nur einen Spannungspegel überwachen willst, dann nimm lieber den 
Analog-Comparator. Da brauchste keinen Code zum Überwachen, der ist 
schnell und meldet sich per Interrupt, falls gewünscht.

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.