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


von Mathias (Gast)


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

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


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?

von Karl H. (kbuchegg)


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

von Mathias (Gast)


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

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Wenn du eh schon printf verwendest, kannst du das über die Format-Angabe 
erledigen:
1
centivolt = spannung%100;
2
volt      = spannung/100;
3
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

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.