diff options
| author | Avi Levkovich <avi@twine-s.com> | 2019-05-16 12:32:57 +0300 |
|---|---|---|
| committer | Avi Levkovich <avi@twine-s.com> | 2019-05-16 12:32:57 +0300 |
| commit | ef985768e4db09c305eead4e91f212ae20926c37 (patch) | |
| tree | 4ccf08c452b8d557e315ce15dcdeb9eaaa414413 /Software/Embedded_SW/Embedded/Drivers | |
| parent | d2fe3001624ea3bb5e9d5eea9d69d6ec790ef0c0 (diff) | |
| download | Tango-ef985768e4db09c305eead4e91f212ae20926c37.tar.gz Tango-ef985768e4db09c305eead4e91f212ae20926c37.zip | |
update the screw enc logic
Diffstat (limited to 'Software/Embedded_SW/Embedded/Drivers')
| -rw-r--r-- | Software/Embedded_SW/Embedded/Drivers/FPGA/FPGA.c | 18 | ||||
| -rw-r--r-- | Software/Embedded_SW/Embedded/Drivers/FPGA/FPGA.h | 1 |
2 files changed, 16 insertions, 3 deletions
diff --git a/Software/Embedded_SW/Embedded/Drivers/FPGA/FPGA.c b/Software/Embedded_SW/Embedded/Drivers/FPGA/FPGA.c index e3eaf4547..e5a2c1cec 100644 --- a/Software/Embedded_SW/Embedded/Drivers/FPGA/FPGA.c +++ b/Software/Embedded_SW/Embedded/Drivers/FPGA/FPGA.c @@ -458,6 +458,7 @@ uint32_t Read_Screw_Encoder()//the value of Screw_RotEnc.Position is legal only uint32_t status = OK; uint16_t Save_M = 0; + uint16_t Save_L = 0; SCREW_ENC_M Screw_Enc_M; SCREW_POS Screw_Pos; @@ -465,13 +466,18 @@ uint32_t Read_Screw_Encoder()//the value of Screw_RotEnc.Position is legal only Screw_Enc_M.Word = F1_SCREW_ROTENC_M;; Screw_Pos.Word.M = Screw_Enc_M.Bits.M; Screw_Pos.Word.L = F1_SCREW_ROTENC_L; + //read again Screw_Enc_M.Word = F1_SCREW_ROTENC_M; Save_M = Screw_Enc_M.Bits.M; + Save_L = F1_SCREW_ROTENC_L; if(Save_M != Screw_Pos.Word.M) - status = ERROR; - else - Screw_RotEnc.Position = Screw_Pos.Position; + { + Screw_Pos.Word.M = Save_M; + Screw_Pos.Word.L = Save_L; + } + + Screw_RotEnc.Position = Screw_Pos.Position; Screw_RotEnc.Index_Counter = F1_SCREW_ROTENC_I; @@ -479,3 +485,9 @@ uint32_t Read_Screw_Encoder()//the value of Screw_RotEnc.Position is legal only } +void Reset_Screw_Encoder() +{ + F1_SCREW_ROTENC_M = 0; +} + + diff --git a/Software/Embedded_SW/Embedded/Drivers/FPGA/FPGA.h b/Software/Embedded_SW/Embedded/Drivers/FPGA/FPGA.h index f225227f0..e660b450a 100644 --- a/Software/Embedded_SW/Embedded/Drivers/FPGA/FPGA.h +++ b/Software/Embedded_SW/Embedded/Drivers/FPGA/FPGA.h @@ -20,6 +20,7 @@ void Set_Speed_Sensor_TypeII_Registers(uint32_t Counter, uint32_t Prescaler); uint32_t Read_Speed_Sensor_TypeII(); uint32_t Read_Screw_Encoder();//the value of Screw_RotEnc.Position is legal only when the status is OK +void Reset_Screw_Encoder(); typedef struct { |
