aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Embedded_SW/Embedded/Drivers
diff options
context:
space:
mode:
authorAvi Levkovich <avi@twine-s.com>2021-01-06 14:13:07 +0200
committerAvi Levkovich <avi@twine-s.com>2021-01-06 14:13:07 +0200
commitfd8f317b9843a6928c24cb2a034afbfa451fd375 (patch)
tree7cea3fa4aff3b39db370fcf3a9d8a7d4c77617a6 /Software/Embedded_SW/Embedded/Drivers
parent776a9559dd92dc274bdc4473c5933842871e8f18 (diff)
parent9be5ed60495bb13a6699b82a9dc6c10a2fb83c8e (diff)
downloadTango-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.c74
-rw-r--r--Software/Embedded_SW/Embedded/Drivers/flash_ram/MCU_E2Prom.h4
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);