Re: Float ins EEprom speichern??? Kategorie: Programmierung (von André H. - 13.10.2002 20:30) | |
Als Antwort auf Re: Float ins EEprom speichern??? von Thomas - 13.10.2002 18:26
| |
Hallo Thomas, Warum speicherst Du die eingaben in einem String ??? Mache es so: 1.Ziffer wert = Eingabe_Tastatur ab 2.Ziffer wert = (wert*10) +Eingabe_Tastatur So bekommst Du einen wunderbaren Integer, den Du ins EEProm speichern kannst, und mit dem Du auch rechnen kannst !! Vergi� Strings im zusammenhang mit Daten !!!! Strings sind nur für Text zugebrauchen, oder für Ausgaben. Für die Ausgabe von Zahlen auf das ext. LCD benutzt Du am besten die "Zahl"-Funktionen von lcdext.c2. Und was ist das ?? > s=n; // String in einen Integer wandeln > eeprom.writeint(0,256,n); //Integer in Eprom Speichern. 1. Man kann nicht einfach Integer = String schreiben. 2. wenn es ginge, müsste es n=s hei�en ! Zum Verständnis, was ein String ist:(CC2) Ein String ist nichts anderes als ein Byte-Array mit 32 Elementen. In Element 0 bis 29 stehen die Zeichen im ASCII-Code. An stellen ohne Zeichen steht ASCII-Code "0"(=Bytewert 0). In Element 30 steht immer der Wert 0. In Element 31 steht die Anzahl der Zeichen im String (0 bis 32). Was anderes: Beachtest Du eigentlich die Fehlermeldungen des Compilers ? MfG André H. > Hallo Andre > > So, nach einigen Basteln habe ich nun Deine Funktion von dem AD592 eingebaut. > Komme zwar mit deiner berechnung nicht klar, weil ich bei 20 °C irgendwo bei 7564 bin. > Habe die Berechnung geändert und habe nun 200 bei 20,0°C und bekomme es als Kommazahl > auf das LCD. Die 200 ist nun ein Integer. > Um nun einen Wert zum vergleichen zu haben mu� Ich eine Zahl zb 215 =21,5°C > uber die Tastatur eingeben und ins Eprom speichern. Als String kann ich das auch alles wunderbar > zusammenschreiben und ins Eprom speichern.Wenn Ich das aber nun als Interger versuche,bekomme > ich nur 000beim auslesen des Eproms angezeigt.Der Vergleich geht garnicht.das hei�t, das der Ausgang > sofort auf Heizen schaltet , egal ob ich nun 000 oder 300 speichere. Tsoll ist 250(25,0°) Zimmertemperatur sind > 20 °. > Ich versteh das nicht. Bin wohl für son rechenkram zu doof. > > Kannst du mir da bitte noch mal helfen? > > hier ist ein der Programmteil; > > keyb2.keywert=255; > int e1; string out; > lcdext.clear(); > lcdext.goto(0,0); > lcdext.print("Alte Temperatur"); > e1=eeprom.readint(0,256); // Integer aus Eprom lesen > out=""; > str.putlongf(out,e1,3); //Integer als String wandeln > lcdext.goto(1,6); > lcdext.print(out); // String auf LCD ausgeben. > keyb2.keywert=255; // Hier steht immer 000 im LCD > lcdext.goto(2,-4); > lcdext.print("Neue Temperatur"); > sleep 250; > lcdext.showcursor(); > lcdext.goto(3,0); > s=""; //<<< ab hier soll die Zahl erzeigt werden. > wait keyb2.keywert <=3; // Auf wert von Tastatur warten > str.putintf(s,keyb2.keywert,1); // Erste Zahl Zusammen setzen > lcdext.goto(3,2); > lcdext.print(s); // Zahl auf LCD Anzeigen > keyb2.keywert=255; > sleep 250; > wait keyb2.keywert <=9; //Auf Wert von Tastatur warten > str.putintf(s,keyb2.keywert,1); // Zweite Zahl zusammen setzen > lcdext.goto(3,2); > lcdext.print(s); //Zahlen auf LCD anzeigen > keyb2.keywert=255; > sleep 250; > wait keyb2.keywert <=9; //Auf Wert von Tastatur warten > str.putintf(s,keyb2.keywert,1); // Dritte Zahle zusanmem setzen > lcdext.goto(3,2); > lcdext.print(s); //Zahlen Auf LCD anzeigen > keyb2.keywert=255; > sleep 250; > wait keyb2.keywert ==100; //Warten auf * von Tastatur > s=n; // String in einen Integer wandeln > eeprom.writeint(0,256,n); //Integer in Eprom Speichern. > sleep 100; > } > > > wäre sehr Dankbar. > gru� Thomas Antworten bitte nur ins Forum! Fragen per EMail auf Forum-Postings werden nicht beantwortet! Das macht meine Heizung gerade | |
Antwort schreiben Antworten: Re: Float ins EEprom speichern??? (von Thomas - 14.10.2002 12:09) |