From 1ca9e2200a554a58dd4bd685e9cfbc3c0959040e Mon Sep 17 00:00:00 2001 From: Jonas Arnold Date: Thu, 20 Oct 2022 15:05:30 +0200 Subject: [PATCH] automatically select delay method according to definition of RTOS --- ADIS_tinyK22_SplitFlap/source/splitflap.c | 24 +++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/ADIS_tinyK22_SplitFlap/source/splitflap.c b/ADIS_tinyK22_SplitFlap/source/splitflap.c index 7dd1afd..9179cf6 100644 --- a/ADIS_tinyK22_SplitFlap/source/splitflap.c +++ b/ADIS_tinyK22_SplitFlap/source/splitflap.c @@ -154,15 +154,21 @@ bool SF_MoveMotorToZeroPosition(SF_Handle_t instance){ // move out of sensor while(SF_GetMagSensorAtZeroPosition((SF_t*)instance) == true){ McuULN2003_IncStep(((SF_t*)instance)->motor); +#ifdef McuLib_CONFIG_SDK_USE_FREERTOS vTaskDelay(pdMS_TO_TICKS(20)); - //McuWait_Waitms(20); +#else + McuWait_Waitms(20); +#endif } // turn until sensor is on and not reached one full rotation already (timeout) while(SF_GetMagSensorAtZeroPosition((SF_t*)instance) == false && numStepsMoved < SPLITFLAP_STEPS_ONE_ROUND ){ McuULN2003_IncStep(((SF_t*)instance)->motor); +#ifdef McuLib_CONFIG_SDK_USE_FREERTOS vTaskDelay(pdMS_TO_TICKS(20)); - //McuWait_Waitms(20); +#else + McuWait_Waitms(20); +#endif numStepsMoved++; } @@ -170,8 +176,11 @@ bool SF_MoveMotorToZeroPosition(SF_Handle_t instance){ if(numStepsMoved < SPLITFLAP_STEPS_ONE_ROUND){ for(int i=0; i < offsetSteps; i++){ McuULN2003_IncStep(((SF_t*)instance)->motor); - vTaskDelay(pdMS_TO_TICKS(20)); - //McuWait_Waitms(20); +#ifdef McuLib_CONFIG_SDK_USE_FREERTOS + vTaskDelay(pdMS_TO_TICKS(20)); +#else + McuWait_Waitms(20); +#endif } } McuULN2003_SetPos(((SF_t*)instance)->motor, 0); @@ -209,8 +218,11 @@ void SF_MoveSteps(SF_Handle_t instance, uint32_t steps){ if(McuULN2003_StepCallback(((SF_t*)instance)->motor, true)){ steps--; } - vTaskDelay(pdMS_TO_TICKS(1)); - //McuWait_Waitms(1); +#ifdef McuLib_CONFIG_SDK_USE_FREERTOS + vTaskDelay(pdMS_TO_TICKS(20)); +#else + McuWait_Waitms(20); +#endif } McuULN2003_AccelerationEnd(((SF_t*)instance)->motor);