Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - Zum C-Control-I-Forum - Zum C-Control-II-Forum

Re: Wie Singles zu convertieren? Kategorie: Programmierung Basic (von Baltus - 18.11.2010 20:03)
Als Antwort auf Re: Wie Singles zu convertieren? von ulrich korth - 18.11.2010 18:59
Ich nutze:
CC-Pro 128 Application Board, Pro-Bot128
Schade: Es handelt hier nicht um Long variabelen; es geht um Single .

Am moment arbeite ich an eine Lösung (gültig für alle Dezimale) mit alle Ziffern in vier Bytes, und der Position
der Komma und das Zeichen in ein fünfter Byte.
Bespiel:
Zahl: -123456,8877
Long: 1234568877
5er Byte: Zeichen=-,   Ziffern vor der Komma=6


> > > > Ich wolle Singles (32 bits = 4 bytes) in vier auffolgende Adresse in EEPROM speichern.
> > > >
> > > > Wie kann ich eine Single in vier Bytes aufteilen? (Biteshift ">>" functioniert nicht am Single)
> > > > Oder gibt es vielleicht eine andere Lösung?
> > >
> > > Ich würde die Single in 2 Word aufteilen. Die oberen 16 Bit durch 0xFFFF Dividieren.
> > > Die Division braucht ohnehin etwa die gleiche Zeit wie Shift Befehle und funktioniert bei Single.
> > > Gruß
> > > Ernst H.
> > Irrtum - ich dachte an ULong - bei Single .. keine Ahnung
>
> egal ob long, dword oder unsigned long kannst du folgende Routinen verwenden - nur den
> Datentyp entspr. anpassen!
> Gruss Ulrich
>
> void EEPROM_WriteLong(word pos, long val){
>    EEPROM_WriteWord(pos, val);
>    EEPROM_WriteWord(pos+2, val>>16);
> }
> long EEPROM_ReadLong(word pos){
>   long l;
>   l=EEPROM_ReadWord(pos+2);
>   l=(l<<16) + EEPROM_ReadWord(pos);
>   return l;
> }


    Antwort schreiben


Antworten:

Re: Wie Singles zu convertieren? (von ulrich korth - 19.11.2010 14:59)