Ich habe eine Problem und zwar nutze ich ein 4x20 LCD an einem Mega32. Nun wollte ich einfach mal den ADC testen also einfach nen Poti an Aref und ADC0 so wenn ich das einfach so Ausgebe dann funktioniert das auch. Mit einer umrechnung hab ich dann den Wert in mV da stehn also von 0mv bis 2560mV. So nun wollt ich es aber mal ausprobieren das auf dem Dislay bei max ausschlag 2,56V stehn oder 0,50V. wie ist das zu realisieren ? Denn mein befehl itoa den ich hier aus dem forum kopiert hab ist nur fuer Maximal short int zahlen und das geht ja nciht weil ich ein Komma haben möchte. gibts da nen trick ?
lui wrote: > Ich habe eine Problem und zwar nutze ich ein 4x20 LCD an einem Mega32. > Nun wollte ich einfach mal den ADC testen also einfach nen Poti an Aref > und ADC0 so wenn ich das einfach so Ausgebe dann funktioniert das auch. > Mit einer umrechnung hab ich dann den Wert in mV da stehn also von 0mv > bis 2560mV. > > So nun wollt ich es aber mal ausprobieren das auf dem Dislay bei max > ausschlag 2,56V stehn oder 0,50V. wie ist das zu realisieren ? > 2560 / 100 = 2 das ist dein Vorkommaanteil danach gibst du einen '.' aus 2560 % 100 = 560 das ist dein Nachkommaanteil Wenn du alles nacheinander ausgibst, steht am Display 2.560 Aufpassen, der Nachkommaanteil muss immer 3 Zeichen (in deinem Beispiel) umfassen. 2080 / 100 = 2, 2080 % 100 = 80 aber eine Ausgabe von 2.80 wäre falsch. Es muss schon 2.080 heissen!
Ich denke du meinst am anfang 2560 / 1000 = 2 das ist dein Vorkommaanteil aber das mit der nachkomma zahl hab ich noch nciht verstanden wie wird denn da die vorkomma zahl "weg" gemacht ?
lui wrote: > Ich denke du meinst am anfang > > 2560 / 1000 = 2 das ist dein Vorkommaanteil Ja. Natürlich. Noch zuwenig Kaffee :-) > aber das mit der nachkomma zahl hab ich noch nciht verstanden wie wird > denn da die vorkomma zahl "weg" gemacht ? % ist der Modulo Operator. = Rest bei einer Division. So wie in: Eine Mutter hat 2 Kinder und 14 Äpfel. Wenn jedes Kind gleich viele Äpfel bekommt, wieviele Äpfel bleiben der Mutter noch übrig. 14 % 2 = 4
Gibts da nen Trick das der nachkomma wert immer 3 Zeichen lag sein soll ? also das die folgenden nullen ja auch angezeigt werden soll ?
Karl heinz Buchegger wrote: > So wie in: Eine Mutter hat 2 Kinder und 14 Äpfel. Wenn jedes > Kind gleich viele Äpfel bekommt, wieviele Äpfel bleiben der > Mutter noch übrig. > 14 % 2 = 4 Hmmm, ich würde sagen, 14 % 2 = 0... Meintest Du vielleicht ne Mutter mit 5 Kindern? Dann wäre es 14 % 5 = 4, dann stimmt's. Schließlich kann der Rest nie größer sein als der Divisor.
mhm das könnte ich dann ja so nciht verwenden weil bei meinem Poti ja immer mal ne 2,0xx oder noch schlimmer ne 2,00x dabei sein kann. Ich hab auch öfter den befehl gelesen printf("%05.2f" , 4.5 ); könnte ich den nicht auch einfach nutzen ? und bei 4,5 müsste dann meine zahl stehn ? oder is der printf nicht fuer ein LCD gedacht ? gibts denn dafür einen ähnlichen bfehl fuer ein LCD
Johannes M. wrote: > Karl heinz Buchegger wrote: >> So wie in: Eine Mutter hat 2 Kinder und 14 Äpfel. Wenn jedes >> Kind gleich viele Äpfel bekommt, wieviele Äpfel bleiben der >> Mutter noch übrig. >> 14 % 2 = 4 > Hmmm, ich würde sagen, 14 % 2 = 0... Oh Mann. Heute fehlt noch viel Kaffee. > Meintest Du vielleicht ne Mutter mit 5 Kindern? Jup. Aber irgendwie hab ich dann die 5 Kinder mit den jeweils 2 Äpfel durcheinandergewürfelt :-)
lui wrote: > Ich hab auch öfter den befehl gelesen > > printf("%05.2f" , 4.5 ); > > könnte ich den nicht auch einfach nutzen ? und bei 4,5 müsste dann meine > zahl stehn ? Könntest du natürlich nutzen. Nur ziehst du dir dann für diese eine Floating Point Berechnung die komplette Floating Point Library ins Programm rein (~2KB nur für diese eine Ausgabe) > oder is der printf nicht fuer ein LCD gedacht ? gibts denn dafür einen > ähnlichen bfehl fuer ein LCD printf weiß überhaupt nicht warauf es ausgibt. printf formatiert einen String und schickt ihn dann in die Ausgabekanäle, was auch immer am anderen Ende hängt. Aber es gibt eine Alternative: sprintf sprintf formatiert nur den String und was du dann mit dem String weiter machst, ist dein Bier
1 | char Out[80]; |
2 | int i = 2860; |
3 | |
4 | sprintf( Out, "Spannung = %d.%03d V", i / 1000, i % 1000 ); |
5 | |
6 | lcd_string( Out ); // oder wie auch immer die Stringausgabe |
7 | // auf deinem LCD heißt
|
Und demnächst wird ein Besuch in der nächsten Buchhandlung fällig :-) Ohne Literatur wirst du auf lange Sicht Schiffbruch erleiden.
Jau genial der Befehl funktioniert. Jo ich glaub auch das ich langsam so ein buch ma lesen sollte bis jetzt hab ich mich einfach durch tutorial gewuselt und mal alles ausprobiert was mich so interessiert hat. Und hab einfach ma an den werten rum gespielt und getestet :D bis jetzt hats geklappt ich sach auch ma warum ich dat mache vll interessierts euch ja :o) Also wenn das alles mal Feritg ist soll das eine Wetterstation werden die über das DCF77 signal die uhrzeit Datum und wochtag anzeigt zusätzlich soll die Temperatur Innen und evtl auch Aussen temperatur angezeigt werden. das ganze in einem Gehäuse mit einem Bleigel Akku versorgt mit anschluss an die Steckdose um den akku zu laden. eventuell später noch einen PC-Speaker als Wecker eingebaut :P aber das erst später. Ich denk als nächstes setz ich mich ans empfangen/auswerten des DCF Signals
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.