diff options
| author | Avi Levkovich <avi@twine-s.com> | 2021-01-06 14:13:07 +0200 |
|---|---|---|
| committer | Avi Levkovich <avi@twine-s.com> | 2021-01-06 14:13:07 +0200 |
| commit | fd8f317b9843a6928c24cb2a034afbfa451fd375 (patch) | |
| tree | 7cea3fa4aff3b39db370fcf3a9d8a7d4c77617a6 /Software/Embedded_SW/Embedded/Drivers | |
| parent | 776a9559dd92dc274bdc4473c5933842871e8f18 (diff) | |
| parent | 9be5ed60495bb13a6699b82a9dc6c10a2fb83c8e (diff) | |
| download | Tango-fd8f317b9843a6928c24cb2a034afbfa451fd375.tar.gz Tango-fd8f317b9843a6928c24cb2a034afbfa451fd375.zip | |
Merge branch 'master' of https://twinetfs.visualstudio.com/Tango/_git/Tango
Diffstat (limited to 'Software/Embedded_SW/Embedded/Drivers')
| -rw-r--r-- | Software/Embedded_SW/Embedded/Drivers/flash_ram/MCU_E2Prom.c | 74 | ||||
| -rw-r--r-- | Software/Embedded_SW/Embedded/Drivers/flash_ram/MCU_E2Prom.h | 4 |
2 files changed, 61 insertions, 17 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 20c6d5a00..44f1ffe78 100644 --- a/Software/Embedded_SW/Embedded/Drivers/flash_ram/MCU_E2Prom.c +++ b/Software/Embedded_SW/Embedded/Drivers/flash_ram/MCU_E2Prom.c @@ -45,6 +45,7 @@ uint32_t MCU_E2PromProgram(int Address,uint32_t Data) return (EEPROMProgram((uint32_t *)&Buffer, Address*4, 4)); #endif } + uint32_t MCU_E2PromRead(int Address,uint32_t *Data) { if (Address>=MAX_EEPROM_STORAGE) @@ -60,6 +61,44 @@ uint32_t MCU_E2PromRead(int Address,uint32_t *Data) return OK; } + +uint32_t MCU_E2PromProgramFloat(int Address,float Data) +{ + float Buffer = Data; + if (Address>=MAX_EEPROM_STORAGE) + { + Report("MCU_E2PromProgram Error",__FILE__,__LINE__,Address,RpWarning,Data,0); + return ERROR; + } + if ((Address>=EEPROM_STORAGE_DANCER_0)&&(Address<=EEPROM_STORAGE_DANCER_2)) + { + Report("~~~~~~Store dancers eeprom ",__FILE__,__LINE__,(int)Address,RpWarning,(int)Data,0); + + } + Report("MCU_E2PromProgram",__FILE__,__LINE__,Address,RpWarning,(int)Data*1000,0); +#ifdef EVALUATION_BOARD + return 0; +#else + return (EEPROMProgram((float *)&Buffer, Address*4, 4)); +#endif +} + +uint32_t MCU_E2PromReadFloat(int Address,float *Data) +{ + if (Address>=MAX_EEPROM_STORAGE) + { + Report("MCU_E2PromRead Error",__FILE__,__LINE__,Address,RpWarning,(int)(*Data)*1000,0); + //return ERROR; + } +#ifndef EVALUATION_BOARD + EEPROMRead((float *)Data,Address*4, 4); +#endif + Report("MCU_E2PromRead",__FILE__,__LINE__,Address,RpWarning,(int)(*Data)*1000,0); + + return OK; + +} + /**************************************************/ uint32_t MCU_E2PromProgramChunk(int Address,uint16_t Length,uint32_t Data) { @@ -362,6 +401,7 @@ void MainCardEEpromWriteRequestFunc(MessageContainer* requestContainer) stub_main_card_eeprom_write_request__free_unpacked(request,NULL); } + uint32_t BtsrSaveParamsToEeprom(void *Data) { BTSRParameters* BtsrPrameters = Data; @@ -373,17 +413,17 @@ uint32_t BtsrSaveParamsToEeprom(void *Data) if (memcmp(BtsrPrameters,&ExistingBtsrPrameters,sizeof(ExistingBtsrPrameters))) { data = BtsrPrameters->feedingtension; - status |= MCU_E2PromProgram(EEPROM_BTSR_FEEDING_TENSION, data); + status |= MCU_E2PromProgramFloat(EEPROM_BTSR_FEEDING_TENSION, data); status |= MCU_E2PromProgram(EEPROM_BTSR_TYPE, BtsrPrameters->btsryarntype); status |= MCU_E2PromProgram(EEPROM_BTSR_APPLICATION, BtsrPrameters->btsrapplicationtype); data = BtsrPrameters->threadlengthfactor; - status |= MCU_E2PromProgram(EEPROM_BTSR_LENGTH_OFFSET, data); + status |= MCU_E2PromProgramFloat(EEPROM_BTSR_LENGTH_OFFSET, data); data = BtsrPrameters->tensionerror; - status |= MCU_E2PromProgram(EEPROM_BTSR_TENSION_ERROR, data); + status |= MCU_E2PromProgramFloat(EEPROM_BTSR_TENSION_ERROR, data); data = BtsrPrameters->spooltension; - status |= MCU_E2PromProgram(EEPROM_BTSR_SPOOL_TENSION, data); + status |= MCU_E2PromProgramFloat(EEPROM_BTSR_SPOOL_TENSION, data); data = BtsrPrameters->exittension; - status |= MCU_E2PromProgram(EEPROM_BTSR_EXIT_TENSION, data); + status |= MCU_E2PromProgramFloat(EEPROM_BTSR_EXIT_TENSION, data); } return status; } @@ -393,22 +433,24 @@ uint32_t BtsrReadParamsFromEeprom(void *Data) BTSRParameters* BtsrPrameters = Data; uint32_t status = 0; float data; - status |= MCU_E2PromRead(EEPROM_BTSR_FEEDING_TENSION, &data); + uint32_t value; + + status |= MCU_E2PromReadFloat(EEPROM_BTSR_FEEDING_TENSION, &data); BtsrPrameters->feedingtension = data; - status |= MCU_E2PromRead(EEPROM_BTSR_TYPE, &data); - BtsrPrameters->btsryarntype = data; - status |= MCU_E2PromRead(EEPROM_BTSR_APPLICATION, &data); - BtsrPrameters->btsrapplicationtype = data; - status |= MCU_E2PromRead(EEPROM_BTSR_LENGTH_OFFSET, &data); + status |= MCU_E2PromRead(EEPROM_BTSR_TYPE, &value); + BtsrPrameters->btsryarntype = value; + status |= MCU_E2PromRead(EEPROM_BTSR_APPLICATION, &value); + BtsrPrameters->btsrapplicationtype = value; + status |= MCU_E2PromReadFloat(EEPROM_BTSR_LENGTH_OFFSET, &data); BtsrPrameters->threadlengthfactor = data; - status |= MCU_E2PromRead(EEPROM_BTSR_TENSION_ERROR, &data); + status |= MCU_E2PromReadFloat(EEPROM_BTSR_TENSION_ERROR, &data); BtsrPrameters->tensionerror = data; - status |= MCU_E2PromRead(EEPROM_BTSR_SPOOL_TENSION, &data); + status |= MCU_E2PromReadFloat(EEPROM_BTSR_SPOOL_TENSION, &data); BtsrPrameters->spooltension = data; - status |= MCU_E2PromRead(EEPROM_BTSR_EXIT_TENSION, &data); + status |= MCU_E2PromReadFloat(EEPROM_BTSR_EXIT_TENSION, &data); BtsrPrameters->exittension = data; - Report("BtsrReadParamsFromEeprom",__FILE__,__LINE__,(int)(BtsrPrameters->feedingtension*1000),RpWarning,(int)(BtsrPrameters->tensionerror*1000),(int)(BtsrPrameters->exittension*1000)); - Report("BtsrReadParamsFromEeprom",__FILE__,__LINE__,(int)(BtsrPrameters->btsrapplicationtype),RpWarning,(int)(BtsrPrameters->btsryarntype),(int)(BtsrPrameters->threadlengthfactor*1000)); + Report("BtsrReadParamsFromEeprom",__FILE__,(int)(BtsrPrameters->feedingtension*1000),(int)(BtsrPrameters->tensionerror*1000),RpWarning,(int)(BtsrPrameters->exittension*1000), 0); + Report("BtsrReadParamsFromEeprom",__FILE__,BtsrPrameters->btsrapplicationtype,BtsrPrameters->btsryarntype,RpWarning,(int)(BtsrPrameters->threadlengthfactor*1000), 0); return status; } 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 24f229b2c..297ce1efe 100644 --- a/Software/Embedded_SW/Embedded/Drivers/flash_ram/MCU_E2Prom.h +++ b/Software/Embedded_SW/Embedded/Drivers/flash_ram/MCU_E2Prom.h @@ -68,7 +68,7 @@ typedef enum { ORIFICE3_ZERO_VALUE_ADDR, }EEPROM_ADDRESSES;*/ -#define EEPROM_RESET_REASON_HEAD_ADDRESS 160 +#define EEPROM_RESET_REASON_HEAD_ADDRESS 300 #define EEPROM_RESET_REASON_MAX_DATA 80 #define DISPENSERS_MAP_IN_EEPROM 0x200 @@ -82,6 +82,8 @@ void MCU_E2PromUpdateResetReason(int i); uint32_t MCU_E2PromProgram(int Address,uint32_t Data); uint32_t MCU_E2PromRead(int Address,uint32_t *Data); +uint32_t MCU_E2PromProgramFloat(int Address,float Data); +uint32_t MCU_E2PromReadFloat(int Address,float *Data); void MCU_E2PromProgramMidTank(int midtankId,float a,float b); float MCU_E2PromReadMidtank_A(int MidtankId); float MCU_E2PromReadMidtank_B(int MidtankId); |
