PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Runden, LCD-aktualisierung



Testman3000
24.08.2007, 21:14
Hallo,

wie kann ich einen Wert der in einer Variable (singel) gespeichert ist Runden?(2 stellen nach dem koma).? Habe mit dem ADC eine Spannung gemessen aber brauche die 9 kommastellen nicht? Was kann cih tun?.

Und desweitern, wie kann ich den Den Spannungswert auf ein LCD (oder RS232) schreiben nur dann wenn sich der Wert ändert. Momentan habe ich es in die schleife reingenommen, so das es bei jedem durchlauf neu auf as LCD schreibt. Aber bremst das den AVR nciht unnötig aus?


MFG

MeckPommER
24.08.2007, 22:34
Da gibts mehrere Möglichkeiten. Um Nachkommastellen zu beseitigen kannst du:
- den Wert *100 nehmen, davon den Integer und durch 100 Teilen (rundet die letzte Stelle nicht)
- die Funktion Round statt Integer benutzen

Ich habe noch nicht getestet, welche Möglichkeit schneller ist. Es gibt in Bascom einige "Geschwindigkeitsfallen".

Aber wenn es dir nur um die Ausgabe geht, dann dürfte "Format" die geeignete Funktion sein. Variable in String konvertieren und dann mit der Funktion "Format" in dein gewünschtes Format bringen.

Zum zweiten Punkt: Japp! Das Schreiben auf das LCD bremst enorm!
Einfach am Ende der Schleife den Wert z.B. in eine Variable "oldvalue" legen und im Verlauf der Schleife nur dann den Wert aufs LCD geben, wenn der aktuelle Wert<>oldvalue.

Gruß MeckPommER

Testman3000
24.08.2007, 23:20
Ah danke,

du meinst einfach mit einer "If-abfrage" schaun ob z.B newvalue <> oldvalue ist? "
If newvalue <> oldvalue then
LCD ......

endif
??

Und dann noch eine Frage wegen des ADC, hat zwar nciht direkt was mit LCD zu tun aber in mein Fall schon^^, wie bekomm ich das beste Ergebnis also wieoft essen? und in welchen Zeitabständen, oder reicht 1 mal messen?

MFG