mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik ADC Wert umrechnung für Display


Autor: Mathias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
Ich habe ein Problem:
Ich programmiere einen ATMEGA 16 mit GCC
Ich habe nun vor einen ADC einzulesen und den Wert auf dem Display 
auszugeben leider Scheitere ich an der Umrechnung der Spannung, den Wert 
für den Strom habe ich bereits´auf dem Display, da funktioniert nur die 
Umrechnung einfach, da ich den Strom am Display in mA anzeige.
Die Spannung Möchte ich in folgendem Formatm angeben: xx.x V.

Hat jemand von euch ein Beispiel Code mit dem man Einen Int - Wert 
"ausplittet", ich habe schon mit diversen (Int-) Divisionen und 
Multiplikationen experimentiert aber es funktioniert nicht.

Zum ausgeben verwende ich Printf hab genügend Resourcen und Speicher zur 
verfügung.

Grüße Mathias

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Die Spannung Möchte ich in folgendem Formatm angeben: xx.x V.
Und in welchem Format hast du sie?
Als integer in mV, oder in V oder wie?
Oder nur als Binärwert vom DA?

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

Bewertung
0 lesenswert
nicht lesenswert
Du hast zb 2385 Hunderstelvolt
2385 / 100  -> 23
2385 % 100  -> 85

auf die Anzeige kommt dann

   zuerst die 23
   dann ein Dezimalpunkt
   dann die 85
   und dahinter noch Volt

auf der Anzeige steht dann  23.85 Volt

Aber Vorsicht: bei den 'Nochkommastellen' darf man führende 0-en nicht 
unter den Tisch fallen lassen!

  2806   sind nun mal 28.06 Volt und nicht 28.6

Autor: Mathias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
das ging ja schenll!!  -- Danke

Ich werde es mit der Methode von Karl Heiz machen sollte die 
Nahkommastelle eine Null enthalten programmire ich mit einer If 
-Bedingung eine Null inder Ausgabe hinzu.

Danke

Grüße Mathias

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn du eh schon printf verwendest, kannst du das über die Format-Angabe 
erledigen:
centivolt = spannung%100;
volt      = spannung/100;
printf("Spannung: %2d.%02d", volt, centivolt);

%2d   heißt  verwende (mindestens) 2 Stellen für die Ausgabe
%02d  heißt  verwende 2 Stellen für die Ausgabe und fülle vorn mit 0 auf

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.