Hallo,
Danke Dir Marcus.
habe es mal so gemacht
vieleicht kann man das ja noch abkürzen ?
vieleicht kann das der eine oder andere gebrauchen beim Speichern in das EEprom
long int OperationHours = 815320159; // Rueckwert OK
byte arr[4] ; // Speichern der bytes einer DEC Zahl
void setup()
{
Serial.begin(9600); // Seriale Schnittstelle Datenrate
}
void loop()
{
arr[0] = ((OperationHours) >> 24); // aufspliten in bytes
arr[1] = (OperationHours >> 16); // aufspliten in bytes
arr[2] = (OperationHours >> 8) ; // aufspliten in bytes
arr[3] = (OperationHours) ; // aufspliten in bytes
String myStra = "", myStr = ""; int nullen = 0 , ii=0 ; // Variabeln zuweisen
// Schleife um alle 4 arr abzuarbeiten
while ( ii < 4 ) {
nullen = 8 - String(arr[ii],BIN).length(); // Fuehrende Nullen feststellen
myStr = "" ; // Schleife um alle 4 arr abzuarbeiten
for (int i=0; i<nullen; i++) {myStr = myStr + "0";} //Schleife in der die 0len in ein String gebracht werden
myStra = myStra + myStr + String(arr[ii],BIN); // jetzt ist es 8 Zeichen lang und Binär (byte)
ii++ ; // hochzaehlen Schleife um alle 4 arr abzuarbeiten
} // Ende Schleife um alle 4 arr abzuarbeiten
// ende Routine um bytes zusammen zu fügen
Serial.print(" myStralles ") ; Serial.print(myStra); //Wie kann "514" ich das jetzt anzeigen ?
Serial.println("CR"); // LF
Serial.print(" Original "); Serial.print(OperationHours,BIN);
Serial.println("CR");
// Routine um wieder eine DEZIMAL Zahl zu erstellen
long int wert; // Routine um wieder eine DEZIMAL Zahl zu erstellen
int i = 0; // Routine um wieder eine DEZIMAL Zahl zu erstellen
for (wert=i=0; myStra[i] != '\0'; i++) // Routine um wieder eine DEZIMAL Zahl zu erstellen
wert=wert*2+myStra[i]-48; // Routine um wieder eine DEZIMAL Zahl zu erstellen
printf("\nDezimaler Wert: %ld",wert); // Routine um wieder eine DEZIMAL Zahl zu erstellen
// Ende Routine um eine Dezimalzahl herzustellen
Serial.print(" wert ") ; Serial.print(wert) ;
Serial.println("CR"); // LF
Serial.print("Owert ") ; Serial.print(OperationHours) ;
Serial.println("CR"); // LF
Serial.print("Std "); Serial.print(wert/60);Serial.print(" min ");Serial.print(wert % 100);
Serial.println("CR");
delay(5000); // Warten ms
}