mikrocontroller.net

Forum: Compiler & IDEs ADC und Interrupt Problem


Autor: Dieter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo, habe zwei Probleme mit dem AD Wandler, vieleicht hat ja einer von 
euch eine gute Antwort für mich die ich auch als Anfänger verstehe ;-).
Ich Programmiere in C auf einen Atmega32 mit LCD Display.

Mein erstes Problem ist das ich kein Komma zwischen den Werten habe, 
also 4,95V werden als 495 angezeigt.

xtr=buffer;
xtr = ((long)buffer*5000)/1024;
utoa(xtr,Buffer,10);
lcd_goto(0,1);
lcd_write_s( Buffer );


Mein zweites Problem ist das ich einen Interrupt auslösen will wenn die 
Spannung einen bestimmten Wert unterschreitet. Also wenn die Spannung zu 
niedrig ist das denn auf dem LCD "Niedrige Batterie Spannung" angezeigt 
wird. Nur leider hab ich gar keinen ansatz wie ich das machen kann?!


Danke schonmal im Vorraus für die Beantwortung meiner Fragen!

Autor: Andreas K. (a-k)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der ADC wird dir einen solchen Interrupt nicht liefern. Wenn also eine 
regelmässige Messung nicht ausreicht, dann ist der Analog Comparator 
dein Ding. Genau dafür gibt es ihn.

Wenn es allerdings nur darum geht, diesen misslichen Zustand anzuzeigen, 
dann ist ein Interrupt dafür ziemlich überflüssig. AB und zu mal messen 
und anzeigen reicht dann ja.

Und für das fehlende Komma sei dir etwas Phantasie im Umgang mit 
Division und Divisionsrest nahegelegt

Autor: Dieter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
HAllo, kann ich denn die Spannung anzeigen lassen über den ADC und 
gleichzeitig die Spannung mit dem Analog Komperator vergelichen?

Autor: Andreas K. (a-k)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn die Spannung an beiden Pins liegt ja. Aber wie ich oben schon 
ergänzt habe: dafür braucht's keinen Interrupt.

Autor: Dieter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hat einer von euch vieleicht ein Programmbeispiel für den Analog 
Komperator? finde so keinen im Tutorial

Autor: Koster (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Dieter,
Um ADC und einen Comparator gleichzeitig/nacheinander zu benutzen
Schliesst du die zu messende Spannung an einen ADC Pin an. anschliessend 
kannst du den Comparator über den ADC Multiplexer an den ADC Pin per 
software anschliessen!

Autor: Koster (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Programmbeispiel? Im Datenblatt steht alles!

Autor: Dieter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich verstehe das irgendwie nicht wie das funktionieren soll das was da 
im Datenblatt steht.

Autor: Dieter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Verstehe ich das richtig das der Atmega32 nur einen Analog Komperator 
hat und ich somit ansich nur eine einzige Spannung überwachen kann? Wenn 
ja ist das etwas ungünstig da ich insgesammt 2 Spannungen und 2 
Temperaturen überwachen muss!

Autor: Andreas K. (a-k)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nochmal: Man kann Spannungen auch durch regelmässige Messung mit dem ADC 
überwachen. Und der hat genug Kanäle.

Autor: lkmiller (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Dieter
Für dich nochmal ein wilder Hack.
Damit das Komma Platz hat, werden die Zeichen einfach etwas umsortiert.
:
utoa(xtr,Buffer,10);
Buffer[4]=0;            // String-Ende
Buffer[3]=Buffer[2];    // Einer
Buffer[2]=Buffer[1];    // Zehner
Buffer[1]=',';          // last, but not least: das Komma
lcd_goto(0,1);
:

Da gäbe es noch etliche andere Arten,
auf eine wurde bereits hingewiesen:
Beitrag "ADC Wert auf LCD"
Die allerletzte Zeile verweist auf
http://www.mikrocontroller.net/articles/Festkommaa...

Autor: Dieter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ lkmiller irgendwie ist das voll komisch! Ich habe 40% des speichers 
belegt. Aber wenn ich die Zeilen von dir einfüge sind auf einmal 133% 
belegt?! Wie kann das denn?! Hat einer darauf eine Antwort

Autor: Andreas K. (a-k)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bei einem Mega32? Respekt. Schau mal im Mapfile nach.

Autor: Dieter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
HAllo, habe es hinbekommen... lag irgendwie am dem Projekt, habe den C
code einfach in ein neues Projekt rein kopiert und da ging es^^. Ich
kann Spannungen bis 9,99V super messen ( Also liegen mit einem
Spannungsteiler vorm Eingang des µC). Mein Problem ist im moment das ich
die Spannungen über 10V nicht richtig anzeigen kann... alles bis 10V
wird richtig angezeigt, nur wenn ich unte 9,9V komme wo er nun
eigentlich 09,9V oder halt nur 9,9V anzeigen sollte, zeigt er 99,9V an.

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

Bewertung
0 lesenswert
nicht lesenswert
Bitte mach nicht ständig neue Threads zum selben Thema auf.
Antwort auf deine letzte Frage findest du hier:
Beitrag "Re: ADC Wert auf LCD"

Autor: Dieter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo, tut mir leid habe mich versehn! habe gerade was im anderen Theard 
gelesen und aus versehn da rein gepostet! Das hier ist ja eigentlich der 
Theard den ich deswegen aufgemacht habe.

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.