![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
TEST_CODE_ApplyTo2V1_API
Dependencies: SDFileSystem max32630fthr USBDevice
Diff: CmdHandler.cpp
- Revision:
- 4:217334c3a5b2
- Parent:
- 3:35b05d91568d
--- a/CmdHandler.cpp Mon Jun 22 05:27:48 2020 +0000 +++ b/CmdHandler.cpp Tue Jul 28 01:40:05 2020 +0000 @@ -8,6 +8,8 @@ //#include "Config.h" #include "ServoRun.h" +#include "Van_API.h" + GLOBAL_CMD_VAR g_cmd; //extern CONFIG g_config; @@ -29,6 +31,7 @@ extern DigitalOut rLED; extern DigitalOut xSHUT; extern InterruptIn chip_int; +extern DigitalOut TRIM_EN; extern uint16_t histogram_pos_num; extern uint16_t histogram_per_pos; @@ -36,6 +39,8 @@ extern uint16_t range_step_num; extern uint16_t range_per_step; +extern uint8_t work_mode; + void CmdHandleTask(void) { uint8_t ret; @@ -164,7 +169,7 @@ case VAN_SINGLE_MEAS:// 单次测量 if(HandleOneTimeMeasure() == 0) - UART_CmdAckSend(READ_CMD | 0x80, VAN_SINGLE_MEAS, _uart_send_pbuff, 10); + UART_CmdAckSend(READ_CMD | 0x80, VAN_SINGLE_MEAS, _uart_send_pbuff, 14); else UART_CmdAckSend(READ_CMD | 0x10, VAN_SINGLE_MEAS, _uart_send_pbuff, 2); break; @@ -244,7 +249,13 @@ case INT_ENABLE_CMD: if(pd[5] == 1) + { + work_mode = 1; chip_int.disable_irq(); + WriteOneReg(0x3D, 0xC8); + //WriteOneReg(0x3E, 0x04); + TRIM_EN = 1; + } break; case VAN_DCR_TEST_CMD: @@ -278,6 +289,9 @@ case VAN_RCO_TRIM_CMD: if(RCO_Trim(_uart_send_pbuff) == 0) { + WriteOneReg(0x37, _uart_send_pbuff[0]); + WriteOneReg(0x3E, 0x40); + WriteOneReg(0x3F, 0x8C); _uart_send_pbuff[1] = _uart_send_pbuff[0]; _uart_send_pbuff[0] = 0; UART_CmdAckSend(READ_CMD | 0x80, VAN_RCO_TRIM_CMD, _uart_send_pbuff, 2); @@ -311,6 +325,29 @@ else UART_CmdAckSend(READ_CMD | 0x10, VAN_PIXEL_EN_CMD, _uart_send_pbuff, 2); break; + + case VAN_MP_SLECTE_CMD: + if(MP_Slect(_uart_send_pbuff) == 0) + UART_CmdAckSend(READ_CMD | 0x80, VAN_MP_SLECTE_CMD, _uart_send_pbuff, 129); + else + UART_CmdAckSend(READ_CMD | 0x10, VAN_MP_SLECTE_CMD, _uart_send_pbuff, 2); + + break; + + case VAN_OTP_WRITE_CMD: + if(OTP_Write(&pd[5]) == 0) + UART_CmdAckSend(READ_CMD | 0x80, VAN_OTP_WRITE_CMD, _uart_send_pbuff, 2); + else + UART_CmdAckSend(READ_CMD | 0x10, VAN_OTP_WRITE_CMD, _uart_send_pbuff, 2); + break; + + case VAN_OTP_READ_CMD: + if(OTP_Read(&pd[5], _uart_send_pbuff) == 0) + UART_CmdAckSend(READ_CMD | 0x80, VAN_OTP_READ_CMD, _uart_send_pbuff, pd[6]+2); + else + UART_CmdAckSend(READ_CMD | 0x10, VAN_OTP_READ_CMD, _uart_send_pbuff, 2); + break; + default: @@ -351,22 +388,31 @@ uint8_t HandleOneTimeMeasure(void) { - return OneTimeMeasure((uint16_t*)_uart_send_pbuff, (uint16_t*)(_uart_send_pbuff + 2), (uint32_t*)(_uart_send_pbuff + 4), (uint16_t*)(_uart_send_pbuff + 8)); + return OneTimeMeasure((uint16_t*)_uart_send_pbuff, (uint16_t*)(_uart_send_pbuff + 2), (uint32_t*)(_uart_send_pbuff + 4), (uint16_t*)(_uart_send_pbuff + 8), (uint16_t*)(_uart_send_pbuff + 10), (uint16_t*)(_uart_send_pbuff + 12)); } uint8_t HandleContinuousMeasure(uint8_t *pd) -{ +{ if(pd[5] == 0x00) + { return StopContinuousMeasure(); + } else + { return ContinuousMeasure(); + } } uint8_t HandleReadHistogram(uint8_t tdc_idx) { _uart_send_pbuff[0] = tdc_idx; + + if(tdc_idx == 0xF1) + memcpy(&_uart_send_pbuff[1], histogram[0], 1024); + else + memcpy(&_uart_send_pbuff[1], histogram[tdc_idx], 1024); - memcpy(&_uart_send_pbuff[1], histogram[tdc_idx], 1024); + UART_CmdAckSend(READ_CMD | 0x80, VAN_READ_HIST_CMD, _uart_send_pbuff, 1025); return 0; @@ -413,7 +459,7 @@ return ret; } -uint8_t HandleContinuousMeasureReport(uint16_t lsb, uint16_t milimeter, uint32_t peak, uint16_t noise_level) +uint8_t HandleContinuousMeasureReport(uint16_t lsb, uint16_t milimeter, uint32_t peak, uint16_t noise_level, uint16_t ref_lsb, uint16_t ref_milimeter) { memcpy(_uart_send_pbuff, &lsb, 2); memcpy(_uart_send_pbuff + 2, &milimeter, 2); @@ -421,17 +467,18 @@ memcpy(_uart_send_pbuff + 4, &peak, 4); memcpy(_uart_send_pbuff + 8, &noise_level, 2); + memcpy(_uart_send_pbuff + 10, &ref_lsb, 2); + memcpy(_uart_send_pbuff + 12, &ref_milimeter, 2); + - UART_CmdAckSend(READ_CMD | 0x80, VAN_CONTIU_MEAS, _uart_send_pbuff, 10); + UART_CmdAckSend(READ_CMD | 0x80, VAN_CONTIU_MEAS, _uart_send_pbuff, 14); return 0; } void HandleChipReset(void) { - xSHUT = 0; - wait_ms(30); - xSHUT = 1; + ChipInitReset(); } void HandleFreqReport(float* V_I_Value)