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
> 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?
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
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.