aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorShlomo Hecht <shlomo@twine-s.com>2021-01-05 00:13:44 +0200
committerShlomo Hecht <shlomo@twine-s.com>2021-01-05 00:13:44 +0200
commit25ab46e3ff07e9f15a5e04cc671280cf69d6f99d (patch)
tree60271e60bea81ac9ad4102f86597a59addfb862d
parent4070df75dc74431946374f00d0570ea3776f2d32 (diff)
downloadTango-25ab46e3ff07e9f15a5e04cc671280cf69d6f99d.tar.gz
Tango-25ab46e3ff07e9f15a5e04cc671280cf69d6f99d.zip
BTSR params compare before storing
-rw-r--r--Software/Embedded_SW/Embedded/Drivers/flash_ram/MCU_E2Prom.c30
1 files changed, 18 insertions, 12 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 91d04872e..20c6d5a00 100644
--- a/Software/Embedded_SW/Embedded/Drivers/flash_ram/MCU_E2Prom.c
+++ b/Software/Embedded_SW/Embedded/Drivers/flash_ram/MCU_E2Prom.c
@@ -365,20 +365,26 @@ void MainCardEEpromWriteRequestFunc(MessageContainer* requestContainer)
uint32_t BtsrSaveParamsToEeprom(void *Data)
{
BTSRParameters* BtsrPrameters = Data;
+ BTSRParameters ExistingBtsrPrameters ;
uint32_t status = 0;
float data;
- data = BtsrPrameters->feedingtension;
- status |= MCU_E2PromProgram(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);
- data = BtsrPrameters->tensionerror;
- status |= MCU_E2PromProgram(EEPROM_BTSR_TENSION_ERROR, data);
- data = BtsrPrameters->spooltension;
- status |= MCU_E2PromProgram(EEPROM_BTSR_SPOOL_TENSION, data);
- data = BtsrPrameters->exittension;
- status |= MCU_E2PromProgram(EEPROM_BTSR_EXIT_TENSION, data);
+
+ BtsrReadParamsFromEeprom(&ExistingBtsrPrameters);
+ if (memcmp(BtsrPrameters,&ExistingBtsrPrameters,sizeof(ExistingBtsrPrameters)))
+ {
+ data = BtsrPrameters->feedingtension;
+ status |= MCU_E2PromProgram(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);
+ data = BtsrPrameters->tensionerror;
+ status |= MCU_E2PromProgram(EEPROM_BTSR_TENSION_ERROR, data);
+ data = BtsrPrameters->spooltension;
+ status |= MCU_E2PromProgram(EEPROM_BTSR_SPOOL_TENSION, data);
+ data = BtsrPrameters->exittension;
+ status |= MCU_E2PromProgram(EEPROM_BTSR_EXIT_TENSION, data);
+ }
return status;
}