Pages: [1]   Go Down
Author Topic: Eeprom Zahl Speichern  (Read 336 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Jr. Member
**
Karma: 0
Posts: 85
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

Germany
Offline Offline
Faraday Member
**
Karma: 49
Posts: 2734
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

Meran/BZ/IT
Offline Offline
Full Member
***
Karma: 0
Posts: 184
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hallo,

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

Gruß
Reinhard
Logged

Pages: [1]   Go Up
Jump to: