исправлено неправильно считывание модбас настроек и окончательно добавлена микросекундняа задержки при прямом тесте диода
This commit is contained in:
@@ -38,15 +38,22 @@ void TESTER_TestDiode_Forward(TESTER_TestHandleTypeDef *htest)
|
||||
TESTER_Connect_Phase(&htest->SwPhaseForward);
|
||||
|
||||
/* Прямое включение на определенное время */
|
||||
uint32_t tickstart = HAL_GetTick();
|
||||
HAL_StatusTypeDef res;
|
||||
while(1)
|
||||
if(htest->SwTimings.ticks_for_forward.msdelay)
|
||||
{
|
||||
/* Считывание АЦП пока таймаут истечет */
|
||||
res = ADC_ReadContinuous(htest->adc, htest->continuous_buff_size, tickstart, htest->SwTimings.ticks_for_forward.ticks);
|
||||
|
||||
if(res != HAL_OK)
|
||||
break;
|
||||
uint32_t tickstart = HAL_GetTick();
|
||||
HAL_StatusTypeDef res;
|
||||
while(1)
|
||||
{
|
||||
/* Считывание АЦП пока таймаут истечет */
|
||||
res = ADC_ReadContinuous(htest->adc, htest->continuous_buff_size, tickstart, htest->SwTimings.ticks_for_forward.ticks);
|
||||
|
||||
if(res != HAL_OK)
|
||||
break;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
TESTER_Delay(&htest->SwTimings.ticks_for_forward, &hmcstim);
|
||||
}
|
||||
|
||||
/* Отключение питания от диода */
|
||||
|
||||
@@ -162,17 +162,17 @@ void TESTER_InterfaceHandle(TESTER_ProjectTypeDef *tester)
|
||||
*/
|
||||
void TESTER_UpdateSettings(TESTER_TestHandleTypeDef *htest, MB_DataStructureTypeDef *mbdata)
|
||||
{
|
||||
htest->SwTimings.ticks_for_forward.ticks = mbdata->HoldRegs.TimeForForward;
|
||||
htest->SwTimings.ticks_for_reverse.ticks = mbdata->HoldRegs.TimeForReverse;
|
||||
htest->SwTimings.ticks_before_test.ticks = mbdata->HoldRegs.TimeBeforeTest;
|
||||
htest->SwTimings.ticks_deadtime.ticks = mbdata->HoldRegs.TimeDeadtime;
|
||||
htest->SwTimings.ticks_before_expected_peak.ticks = mbdata->HoldRegs.TimeBeforePeak;
|
||||
htest->SwTimings.ticks_before_test.ticks = mbdata->HoldRegs.TimeBeforeTest;
|
||||
htest->SwTimings.ticks_for_forward.ticks = mbdata->HoldRegs.TimeForForward;
|
||||
|
||||
htest->SwTimings.ticks_for_forward.msdelay = mbdata->Coils.msTimeForForward_enable;
|
||||
htest->SwTimings.ticks_for_reverse.msdelay = mbdata->Coils.msTimeForReverse_enable;
|
||||
htest->SwTimings.ticks_before_test.msdelay = mbdata->Coils.msTimeBeforeTest_enable;
|
||||
htest->SwTimings.ticks_deadtime.msdelay = mbdata->Coils.msTimeDeadtime_enable;
|
||||
htest->SwTimings.ticks_before_expected_peak.msdelay = mbdata->Coils.msTimeBeforePeak_enable;
|
||||
htest->SwTimings.ticks_before_test.msdelay = mbdata->Coils.msTimeBeforeTest_enable;
|
||||
htest->SwTimings.ticks_before_test.msdelay = mbdata->Coils.msTimeForForward_enable;
|
||||
|
||||
TESTER_ADC_UpdateSettings(htest->adc, mbdata);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user