diff options
| author | Shlomo Hecht <shlomo@twine-s.com> | 2019-09-05 13:23:16 +0300 |
|---|---|---|
| committer | Shlomo Hecht <shlomo@twine-s.com> | 2019-09-05 13:23:16 +0300 |
| commit | 6bf0136ccdfa462247dc5e4ef5f4b2569ff21279 (patch) | |
| tree | 3676e9d26c7fb6a14be13440ab644fc5b8e66adc /Software/Embedded_SW/Embedded/Drivers | |
| parent | 8aa8895ed7b0159c668aa0d0d71131ddd570ad6c (diff) | |
| download | Tango-6bf0136ccdfa462247dc5e4ef5f4b2569ff21279.tar.gz Tango-6bf0136ccdfa462247dc5e4ef5f4b2569ff21279.zip | |
EEPROM - midtanks and MCU serial number
Diffstat (limited to 'Software/Embedded_SW/Embedded/Drivers')
| -rw-r--r-- | Software/Embedded_SW/Embedded/Drivers/flash_ram/MCU_E2Prom.c | 29 | ||||
| -rw-r--r-- | Software/Embedded_SW/Embedded/Drivers/flash_ram/MCU_E2Prom.h | 6 |
2 files changed, 33 insertions, 2 deletions
diff --git a/Software/Embedded_SW/Embedded/Drivers/flash_ram/MCU_E2Prom.c b/Software/Embedded_SW/Embedded/Drivers/flash_ram/MCU_E2Prom.c index 4f0f0a827..1fa019d0d 100644 --- a/Software/Embedded_SW/Embedded/Drivers/flash_ram/MCU_E2Prom.c +++ b/Software/Embedded_SW/Embedded/Drivers/flash_ram/MCU_E2Prom.c @@ -64,7 +64,7 @@ float MCU_E2PromReadMidtank_A(int MidtankId) return ERROR; } EEPROMRead((uint32_t *)&Data,Address*4, 4); - Report("MCU_E2PromRead",__FILE__,__LINE__,Address,RpWarning,(int)Data,0); + Report("MCU_E2PromRead",__FILE__,__LINE__,Address,RpWarning,(int)(Data*1000),0); return (Data); } @@ -78,10 +78,35 @@ float MCU_E2PromReadMidtank_B(int MidtankId) return ERROR; } EEPROMRead((uint32_t *)&Data,Address*4, 4); - Report("MCU_E2PromRead",__FILE__,__LINE__,Address,RpWarning,(int)Data,0); + Report("MCU_E2PromRead",__FILE__,__LINE__,Address,RpWarning,(int)(Data*1000),0); return (Data); } +uint32_t MCU_E2PromSerialNumProgram(char *Data) +{ + char * SerialNum = Data; + int len = strlen(SerialNum); + if (len > MAX_SERIAL_NUM_LEN) + { + Report("MCU_E2PromSerialNumProgram length error",__FILE__,__LINE__,len,RpWarning,(int)0,0); + return ERROR; + } + EEPROMProgram((uint32_t *)SerialNum, EEPROM_STORAGE_SERIAL_NUM*4, MAX_SERIAL_NUM_LEN); + + +} +uint32_t MCU_E2PromSerialNumRead(char* *Data) +{ + char SerialNum[MAX_SERIAL_NUM_LEN]; + EEPROMRead((uint32_t *)SerialNum,EEPROM_STORAGE_SERIAL_NUM*4, MAX_SERIAL_NUM_LEN); + + int len = strlen(SerialNum); + strcpy(Data,SerialNum); + Report("MCU_E2PromSerialNumRead length ",__FILE__,__LINE__,len,RpWarning,(int)0,0); + + return len; + +} //Each word may not be subject to more than a specific number of programming cycles before an //erase cycle is required. In other words, for any given word, FlashProgram can only be called diff --git a/Software/Embedded_SW/Embedded/Drivers/flash_ram/MCU_E2Prom.h b/Software/Embedded_SW/Embedded/Drivers/flash_ram/MCU_E2Prom.h index eb9993559..223f31005 100644 --- a/Software/Embedded_SW/Embedded/Drivers/flash_ram/MCU_E2Prom.h +++ b/Software/Embedded_SW/Embedded/Drivers/flash_ram/MCU_E2Prom.h @@ -35,12 +35,18 @@ typedef enum { EEPROM_STORAGE_MAC_ADDR, MAX_EEPROM_STORAGE }EEPROM_STORAGE_USAGE_ENUM; +#define MAX_SERIAL_NUM_LEN 20 +#define SERIAL_NUM_ADDR EEPROM_STORAGE_SERIAL_NUM*4 +#define MAC_ADDR_ADDR (SERIAL_NUM_ADDR + MAX_SERIAL_NUM_LEN) + uint32_t MCU_E2PromProgram(int Address,uint32_t Data); uint32_t MCU_E2PromRead(int Address,uint32_t *Data); void MCU_E2PromProgramMidTank(int midtankId,float a,float b); float MCU_E2PromReadMidtank_A(int MidtankId); float MCU_E2PromReadMidtank_B(int MidtankId); void MCU_E2PromInit(void); +uint32_t MCU_E2PromSerialNumProgram(char *Data); +uint32_t MCU_E2PromSerialNumRead(char* *Data); |
