Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - FAQ - Zum CC1-Forum - Zum CC-Pro-Forum

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)