Go Down

Topic: Eeprom Zahl Speichern (Read 442 times) previous topic - next topic

Ratlos

Hallo
habe ein problem bei einer zahl über 32xxxx

OperationHours wird gezählt über 3400000

beim Lesen ab den zusammensetzen über 32xxxxx ist es falsch
vorhe rjedoch bleibt es OK

Was mache ich falsch ?

Danke für Infos

Code: [Select]
    byte STD1=0;
    byte STD2=0; 
    byte STD3=0;
    byte STD4=0; 
 
     STD1 = (byte)(OperationHours >> 24);
     STD2 = (byte)(OperationHours >> 16); 
     STD3 = (byte)(OperationHours >> 8) ;
     STD4 = (byte)OperationHours ;
    myGLCD.printNumI(STD1, 10,112);   /
    myGLCD.printNumI(STD2, 50,112);
    myGLCD.printNumI(STD3, 90,112);   
    myGLCD.printNumI(STD4, 130,112); 

    //unsigned long int
               long int  STD =  ((STD1 & 0xFF )<< 24) 
                           + ((STD2 & 0xFF )<< 16) 
                           + ((STD3 & 0xFF )<< 8)
                           + ((STD4 & 0xFF )) ;
     myGLCD.printNumI(STD,RIGHT,95);

michael_x

Quote
Was mache ich falsch ?

Du verheimlichst das wichtigste:
  Wie sind OperationHours und printNumI definiert ?
  Was sagt Serial.print über deine Variablen ?

spaceball

Hallo,

vielleicht liegt es daran, daß Du STD nur als "long int" deklariert hast.
Wahrscheinlich sollte es "unsigned long" heißen.

Gruß
Reinhard

Go Up