Eeprom Zahl Speichern

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

    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);

Was mache ich falsch ?

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

Hallo,

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

Gruß
Reinhard