hi everyone...
i am facing a problem in my college project...
i have a 16bit unsigned integer variable and i need to store it in the 24C02 EEPROM, but that saves 8bit variable at a time...
the number i need to save is in the form of a decimal integer, how do i split it into 2 unsigned char variables..
i am using the following method
unsigned int val; unsigned char a,b; a= (val & 0xFF00)>>8; b=(val * 0x00FF);
is this code right?
and when i read it back i read it like this
unsigned int val; val= (((a & 0x00FF)<<8) | (b & 0x00FF));
is this code right? or is there any other way?
note: i obtain val initially from the user input by using this routine
unsigned int Temp2=0; Temp2*=10; Temp2+=Keypress-'0';
Keypress is the input obtained from the keyboard which is ASCII and in the range '0' to '9' and Temp2 is stored in the EEPROM using the Routine i tried
Error:
i tried saving 1234 and when i read it back i got 1024 6666 was read back as 6656 5555 was read back as 5376 1600 was read back as 1536