Guten Abend, ich habe mal eine Frage bezüglich der Ausgabe eines Festkomma Wertes per UART. Und zwar erhalte ich vom ADC einen Volt wert von ca. 512 was ja bei einer Aref von 5 Volt circa 2,56 Entspricht.Nun habe ich diesen in einen mV durch Festkomma arithmetik umgewandelt.Zur ausgabe auf die Nutze ich die funktionen von hier: http://www.mikrocontroller.net/articles/Festkommaarithmetik Das klappt auch alles wunderbar mit werten grösser als 1 Volt (Augbabe 1,00) aber wenn ich zum beispiel nur 0,6 Messe kommt 6,00 aus der Uart und ich verstehe nicht ganz wie ich die führenden Nullen hin bekomm. Ich hoffe mir kann jemand helfen, bin noch neu auf dem Gebiet µC. Ich nutze einen Atmega 16 mit aktuellen AVR-GCC. Mfg Alexander
Das wollte woll mal wieder jemand witzig sein.Sorry Alex aber wegen solchen Idioten nimmt der Ruf dieses Forums immer mehr ab. Aber glücklicherweise sind die meisten nicht so. Zum Thema: Schau mal ob du es hinbekommst per If() zu filtern ob der wert kleiner 1 ist dann könntes du einfach eine null ausgeben und das Komma verschieben. Gruss Mark
Wenns dir auf ein bischen Speicherverschwendung nicht ankommt, kannst du auch folgendes machen
1 | char buffer[10]; |
2 | sprintf( buffer, "%d.%02d", Wert / 100, Wert % 100 ); |
3 | |
4 | lcd_puts( buffer ); |
Vielen Dank für die Hilfe werde mal ein wenig speicher weghauen.Hab sosnt alles fertig und ist noch genug Platz da. Schön das es noch Menschen gibt die nett miteinander umgehen. Mfg Alex
Nun, ich weiß das hier im Forum viele anderer Meinung sind, aber ich steh dazu: Ich nehm eigentlich gerne sprintf für alles Mögliche her. Klar sprintf ist ein Resourcenfresser und der Schnellste ist er sicher auch nicht. Dafür kann man aber alle Formatierprobleme meistens sehr einfach lösen. Ich kann nur empfehlen, sich die Formatiermöglichkeiten von printf/sprintf genauer anzusehen. Da steckt ein enormes Potential drinnen.
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.