diff options
| author | Shlomo Hecht <shlomo@twine-s.com> | 2020-08-30 19:27:52 +0300 |
|---|---|---|
| committer | Shlomo Hecht <shlomo@twine-s.com> | 2020-08-30 19:27:52 +0300 |
| commit | b76f8564a5fc2904c8de299e1650b41af40a49ae (patch) | |
| tree | b862102d1f94e2640d5f2e7d25c1e6ffd054e097 | |
| parent | 25da934cba7a950fcc585fe0518521cbd157999e (diff) | |
| parent | f35997d7f19ffbc4f4f99dbe32ca83207e570e9c (diff) | |
| download | Tango-b76f8564a5fc2904c8de299e1650b41af40a49ae.tar.gz Tango-b76f8564a5fc2904c8de299e1650b41af40a49ae.zip | |
Merge branch 'master' of https://twinetfs.visualstudio.com/Tango/_git/Tango
3 files changed, 32 insertions, 5 deletions
diff --git a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/WHS_Card/D_EMC2302_Fan/WHS_Fan.c b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/WHS_Card/D_EMC2302_Fan/WHS_Fan.c index 6cb64262c..895c8f73e 100644 --- a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/WHS_Card/D_EMC2302_Fan/WHS_Fan.c +++ b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/WHS_Card/D_EMC2302_Fan/WHS_Fan.c @@ -144,18 +144,33 @@ uint16_t WHS_Get_fan_tach(WHS_fan_num fan_number) fan_driver = Select_Fan_Driver(fan_number); tach = D_EMC2302_Read[fan_driver].Reg.TACHReading_High[(fan_number & 0x01)]; tach = ((tach << 8) | D_EMC2302_Read[fan_driver].Reg.TACHReading_Low[(fan_number & 0x01)]); + tach = (tach >> 3);//see data-sheet return tach; } +uint16_t WHS_Fan_Tach[maxFAN] = {0,0,0,0,0,0}; +uint16_t WHS_Fan_Tach_RPM[maxFAN] = {0,0,0,0,0,0}; void Read_All_WHS_Fans_Tach() { WHS_fan_num fan_number = FAN1; + uint16_t tach = 0; + uint16_t m = 2; //Range bit. See data-sheet, table range decode: since the deafualt range is 01 (reported minimum RPM = 1000) the tach count multiplier is 2 for (fan_number = FAN1 ; fan_number < maxFAN; fan_number++) { - WHS_Read_fan_tach(fan_number); + tach = WHS_Read_fan_tach(fan_number); + if (tach < 0x1FFE) + { + WHS_Fan_Tach[fan_number] = tach; + WHS_Fan_Tach_RPM[fan_number] = (3932160 * m) / tach;//see data-sheet + } + else + { + WHS_Fan_Tach[fan_number] = 0; + WHS_Fan_Tach_RPM[fan_number] = 0; + } } } diff --git a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/WHS_Card/D_EMC2302_Fan/WHS_Fan.h b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/WHS_Card/D_EMC2302_Fan/WHS_Fan.h index a15248866..d88cdd1f8 100644 --- a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/WHS_Card/D_EMC2302_Fan/WHS_Fan.h +++ b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/WHS_Card/D_EMC2302_Fan/WHS_Fan.h @@ -101,6 +101,9 @@ typedef union uint8_t Buf[D_EMC2302_Size]; }D_EMC2302_WRITE; +extern uint16_t WHS_Fan_Tach[maxFAN]; +extern uint16_t WHS_Fan_Tach_RPM[maxFAN]; + bool Read_WHS_fan_info(WHS_fan_num fan_number); bool Test_WHS_Fan(void); bool init_WHS_fan(void); diff --git a/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Progress.c b/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Progress.c index 853f6913a..d983144f3 100644 --- a/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Progress.c +++ b/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Progress.c @@ -814,7 +814,8 @@ void Stub_ProgressRequest(MessageContainer* requestContainer) Task_sleep(2000); //response.progress = Fan_Click_Info.Product_ID; - response.progress = Head_Fan_Tach[0]; + //response.progress = Head_Fan_Tach[0]; + response.progress = HeadBlowersGetRPM(HEAD_FAN_RIGHT); response.has_progress = true; } @@ -823,19 +824,27 @@ void Stub_ProgressRequest(MessageContainer* requestContainer) { Trigger_Head_Fan_Control(HEAD_FAN_LEFT, request->delay & 0xFF); Task_sleep(2000); - response.progress = Head_Fan_Tach[1]; + //response.progress = Head_Fan_Tach[1]; + response.progress = HeadBlowersGetRPM(HEAD_FAN_LEFT); response.has_progress = true; } else if ((request->amount & 0x0000FFF0) == 0xFAC0) //WHS Fan control { uint16_t fan_tacho = 0; + WHS_fan_num Fan_Id; + uint8_t Fan_Speed; if (WHS_Type == WHS_TYPE_NEW) { - Trigger_SetWHSFanSpeed(((request->amount & 0x0000000F)-2) , request->delay & 0x000000FF); + Fan_Id = (request->amount & 0x0000000F)-2;//0-5 + Fan_Speed = request->delay & 0x000000FF; + Trigger_SetWHSFanSpeed(Fan_Id, Fan_Speed); Task_sleep(2000); - fan_tacho = WHS_Get_fan_tach( (request->amount & 0x0000000F)-2); + Trigger_WHSReadAllFanTacho(); + Task_sleep(1000); + //fan_tacho = WHS_Get_fan_tach( (request->amount & 0x0000000F)-2); + fan_tacho = WHS_Fan_Tach_RPM[Fan_Id]; } response.progress = fan_tacho; response.has_progress = true; |
