Wenn ich dich richtig verstehe, dann könnte man das mit itoa machen etc.
Falls auf dem Display nur Fragezeichen auftauchen, dann eventuell mal diesen Artikel lesen http://www.mikrocontroller.net/artic...mit_AVR-Studio
da ich Neuling in dem Gebiet C-Programmierung bin, ist meine Frage wie ich von einem 4-stelligen Binärwert, welchen ich auf meinem Display ausgegeben habe, in einen Komma-Dezimal-Wert umrechnen bzw. programmieren kann.
Ich bitte um Hilfe
Danke im Voraus
Wenn ich dich richtig verstehe, dann könnte man das mit itoa machen etc.
Falls auf dem Display nur Fragezeichen auftauchen, dann eventuell mal diesen Artikel lesen http://www.mikrocontroller.net/artic...mit_AVR-Studio
Grüße,
Daniel
Auf dem Display steht ein Dezimalwert vom Speicher ausgelesen 1024, aber ich möchte diesen Wert als Dezimal-Wert umrechnen...
Danke trotzdem Daniel
Na wo haste den denn her? Vom ADC ? Dann muss erst die Referenzgröße verrechnet werden, damit du deine Fließkomma zahl bekommst und diese aufs Display ausgibst.
Grüße,
Daniel
@Jasmin: Was genau willst du eigentlich machen? Uns so einen Mini-Brocken hinzuwerfen macht es schwer dir zu helfen.
mfG
Markus
Tiny ASURO Library: Thread und sf.net Seite
Mal nur so, zur Begriffsbestimmung - auch wenns pingelig klingt.
Hier ist ein Binärwert gezeigt (aus einer RC-5-Decodierung) der in eine dezimale Entsprechung umgerechnet wird - Zeile 3 bis 8 im folgenden Codefenster.
Binärzahlen - auch Dualzahlen genannt - bestehen aus den Ziffern 1 und 0. Einen vierstelligen Binärwert in einen "Komma"-Wert umrechnen - also in eine Gleitkommadarstellung der Art 3,14 ist wohl nicht möglich (genauer könnt ich das ausführen, aber das ist hier sicher nicht von Bedeutung).Code:C501 R5M_x15 m1284p/20MHz 27Nov2012 15:28 ... 11000000010100 => dez: 20 , RCges_zt = 483 11100000011001 => dez: 25 , RCges_zt = 482 11000000100011 => dez: 35 , RCges_zt = 482 11100000011011 => dez: 27 , RCges_zt = 482 11000000001010 => dez: 10 , RCges_zt = 484 11100000000110 => dez: 6 , RCges_zt = 483
Dieser Wert ist schon ein Dezimalwert - vermutlich. Natürlich könnte es auch eine Darstellung in oktal, hex oder gar auf einer total ungewöhnlichen Basis sein. Nur binär ist es mit Sicherheit nicht. Eine dezimale "1024" würde beispielsweise binär 10000000000 heissen.
Zur eigentlichen Frage "Umwandeln Binär in Dezimal" - als Darstellung auf einem Display. Dazu gibts in C den Befehl
itoa - Integer to ascii
der etwa so verwendet wird:
Dabei ist val der aufrufende Parameter, buffer der ASCII-String, der ausgegeben werden kann und 10 die Basis zu der der Wert val umgerechnet werden soll (10 => also ne Dezimalzahl). Die binäre Zahlendarstellung im Codefenster oben wurde mit genau dieser Routine dort oben dargestellt.Code:// Hilfsfunktion, um Zahlen über das UART auszugeben void uputs0i( const int val ) { char buffer[8]; uputs0 ( itoa(val, buffer, 10) ); }
Puuuhhhh. Wirds jetzt etwas verständlicher für Dich?
Geändert von oberallgeier (08.03.2013 um 13:36 Uhr)
Ciao sagt der JoeamBerg
Nimm deinen Wert 11100000000110 verunde es mit 0xF und stell diese Zahl auf dem Display dar.
Zum Verständnis :
11100000000110 & 0xF ergibt 0110 = 6. Entspricht das deinen Erwartungen?
Grüße,
Daniel
Du willst nur 1024.0 aus 1024 machen? Die Nachkommastellen zeigt er nicht an, wenn sie alle null sind. PECH! :P
Was willstn wirklich machen? Ich nehm an, was auch immer dein Ziel ist, es beeinhaltet das Multiplizieren der Ganzzahl mit einem konstanten Gleitkomma-Faktor.
Entsprechen die 1024 einer Spannung oder einem anderen Messwert?
Die 1024 entsprechen einer Spannung, welche ich nun einfach als ...Volt mir anzeigen lassen möchte.
Dann musst du sie erst Mal umrechnen, die Formel dazu kennen wir nicht, weil wir nicht wissen was die Zahl bedeutet. Je mehr Informationen wir haben, desto besser können wir dir helfen ...
mfG
Markus
Tiny ASURO Library: Thread und sf.net Seite
Lesezeichen