Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
eepromlib.h
00001 00002 #ifndef EEPROMBUFFERSIZE 00003 #define EEPROMBUFFERSIZE 32 00004 #endif 00005 00006 00007 00008 #define bitchk(var,pos) ((var) & (1<<(pos))) 00009 00010 00011 char eedata[EEPROMBUFFERSIZE]; 00012 00013 void eeprom_delay(int delaytime) 00014 { 00015 wait_ms(delaytime); 00016 } 00017 00018 00019 void load_eeprom() 00020 { 00021 char ERR=0; 00022 char data[3]; 00023 //printf("Setting read pointer to 0\n"); 00024 data[0] = 0; // MSB address 00025 data[1] = 0; // LSB address 00026 if(Wire.write(0xA0, data, 2)) 00027 { // send address, but no data 00028 // error("Write failed\n"); 00029 ERR+=2; 00030 } 00031 00032 if(Wire.read(0xA0, eedata, EEPROMBUFFERSIZE)) 00033 { 00034 //error("Read failed\n"); 00035 ERR+=4; 00036 } 00037 00038 //Count Variable ... 00039 if (ERR==0) 00040 { //transfer data to working memory 00041 /* 00042 TIME_SEC = eedata[0]; 00043 TIME_dSEC = eedata[1]; 00044 MODE_TD_TS = eedata[2]; 00045 MODE_RANGE = eedata[3]; 00046 OPTION = eedata[4]; 00047 */ 00048 } 00049 00050 /* 00051 DEBUG 00052 char str[50]; 00053 sprintf (str, "%d#%d:%d:%d",ERR,eedata[0],eedata[1],eedata[2] ); 00054 LCDI2C4Bit_cursorTo(0,0); 00055 LCDI2C4Bit_printIn(str); 00056 00057 sprintf (str, "%d:%d",eedata[3],eedata[4] ); 00058 00059 LCDI2C4Bit_cursorTo(2,0); 00060 LCDI2C4Bit_printIn(str); 00061 00062 LCDI2C4Bit_backLight(true); 00063 00064 while(1); 00065 */ 00066 } 00067 00068 00069 00070 00071 void save_eeprom() 00072 { 00073 char ERR=0; 00074 char i=0; 00075 00076 00077 /* 00078 eedata[0] = TIME_SEC; 00079 eedata[1] = TIME_dSEC; 00080 eedata[2] = MODE_TD_TS; 00081 eedata[3] = MODE_RANGE; 00082 eedata[4] = OPTION; 00083 */ 00084 00085 char data[3]; 00086 00087 for ( i=0;i<=(EEPROMBUFFERSIZE-1);i++) 00088 { 00089 data[0] = 0; // MSB address 00090 data[1] = i; // LSB address 00091 data[2] = eedata[i]; // data 00092 00093 if(Wire.write(0xA0, data, 3)) 00094 { 00095 //error("Write failed\n"); 00096 ERR+=1; 00097 } 00098 //delay(75); 00099 00100 while(Wire.write(0xA0, NULL, 0)) 00101 { // wait to complete , this may cause system hang!! 00102 00103 00104 } 00105 eeprom_delay(42); ////delay for EEPROM 40 ms OK 00106 00107 } 00108 00109 00110 }
Generated on Wed Jul 20 2022 19:08:24 by
1.7.2