EEEE
Diff: eepromlib.h
- Revision:
- 0:e97bf680f246
- Child:
- 1:b1f67aa4c9ee
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/eepromlib.h Wed Sep 23 07:59:38 2015 +0000 @@ -0,0 +1,105 @@ + +#ifndef EEPROMBUFFERSIZE +#define EEPROMBUFFERSIZE 32 +#endif + +char eedata[EEPROMBUFFERSIZE]; + +void eeprom_delay(int delaytime) +{ + wait_ms(delaytime); +} + + +void load_eeprom() +{ + char ERR=0; + char data[3]; + //printf("Setting read pointer to 0\n"); + data[0] = 0; // MSB address + data[1] = 0; // LSB address + if(Wire.write(0xA0, data, 2)) + { // send address, but no data + // error("Write failed\n"); + ERR+=2; + } + + if(Wire.read(0xA0, eedata, EEPROMBUFFERSIZE)) + { + //error("Read failed\n"); + ERR+=4; + } + +//Count Variable ... +if (ERR==0) +{ //transfer data to working memory + /* + TIME_SEC = eedata[0]; + TIME_dSEC = eedata[1]; + MODE_TD_TS = eedata[2]; + MODE_RANGE = eedata[3]; + OPTION = eedata[4]; + */ + } + + /* + DEBUG + char str[50]; + sprintf (str, "%d#%d:%d:%d",ERR,eedata[0],eedata[1],eedata[2] ); + LCDI2C4Bit_cursorTo(0,0); + LCDI2C4Bit_printIn(str); + + sprintf (str, "%d:%d",eedata[3],eedata[4] ); + + LCDI2C4Bit_cursorTo(2,0); + LCDI2C4Bit_printIn(str); + + LCDI2C4Bit_backLight(true); + + while(1); + */ +} + + + + +void save_eeprom() +{ +char ERR=0; +char i=0; + + + /* + eedata[0] = TIME_SEC; + eedata[1] = TIME_dSEC; + eedata[2] = MODE_TD_TS; + eedata[3] = MODE_RANGE; + eedata[4] = OPTION; +*/ + + char data[3]; + + for ( i=0;i<=(EEPROMBUFFERSIZE-1);i++) + { + data[0] = 0; // MSB address + data[1] = i; // LSB address + data[2] = eedata[i]; // data + + if(Wire.write(0xA0, data, 3)) + { + //error("Write failed\n"); + ERR+=1; + } + //delay(75); + + while(Wire.write(0xA0, NULL, 0)) + { // wait to complete , this may cause system hang!! + + + } + eeprom_delay(42); ////delay for EEPROM 40 ms OK + + } + + +}