cancel
Showing results for 
Search instead for 
Did you mean: 

Wait but MCU is unblocked

XooM
Senior

I haven't been able to wait 500ms without affecting the timers for 7 days.
In this block, doesn't PB14 become "0" after 500ms?
Even if I use comment lines, it doesn't work.

Note: volatile uint32_t Counter = 0;
The "Counter" variable is incremented every 1ms with Timer16.

 

** STM32F030C6T6 I'm using.

** Own PCB board..

*** Note: Card of a working system.. There is no card design error.

 

 

if(htim->Instance==TIM16) { Counter++; if(HAL_GPIO_ReadPin(GPIOC, GPIO_PIN_13)==0) { if(HAL_GPIO_ReadPin(GPIOA, GPIO_PIN_2)==0) { if(PA10_On==0) { HAL_GPIO_WritePin(GPIOB, GPIO_PIN_12,GPIO_PIN_RESET); HAL_GPIO_WritePin(GPIOB, GPIO_PIN_14,GPIO_PIN_SET); Counter=0; PA10_On=1; // Tick_PA10_On= HAL_GetTick(); // PA10_On=1; } else { if(Counter>500) // if((HAL_GetTick()-Tick_PA10_On)>=500) { HAL_GPIO_WritePin(GPIOB, GPIO_PIN_14,GPIO_PIN_RESET); Counter=501; } } } else { HAL_GPIO_WritePin(GPIOB, GPIO_PIN_12,GPIO_PIN_SET); } } else { HAL_GPIO_WritePin(GPIOB, GPIO_PIN_12,GPIO_PIN_RESET); } }
View more

 

 

60 REPLIES 60

I will try but the problem must be somewhere else.

because
even the code above does not work. b14 is not active or passive.

XooM_0-1731928458265.png

 

attach main.c 

 

I added.

if (HAL_GetTick() - tick_start >= 500) { HAL_GPIO_TogglePin(GPIOB, GPIO_PIN_12); // HAL_GPIO_TogglePin(GPIOB, GPIO_PIN_13); HAL_GPIO_TogglePin(GPIOB, GPIO_PIN_14); tick_start = HAL_GetTick(); // }

even this code is not working.
I think there is a problem with HAL_GetTick();..
HAL_GetTick(); may not be working.

Seems you project isnt configured... HAL_IncTick is in Systick IT handler , but systick isnt configured...

How you manage project ? CubeMX ?

Or timers is misconfigured and ISR took long, then main code never run. Know you how debug code?

Try comment all timers out.

I am using stm32cubeide. If I send you my project file, can you review it? Just find my mistake about the hal_gettick(); function. I control my project with timers. I don't understand which one is longer.

I use test5.rar and main.c , and try send you back working code.

I don't know which file is in test 5, but the solution you make there will still be useful to me.

Try this main file