Loading...
 

Zephyr project on STM32

   Zephyr Workbench, a VSCode extension to manage Zephyr on STM32.
It enables users to easily create, develop, and debug Zephyr applications.
Main features:
  • Install host dependencies.
  • Import toolchain and SDK.
  • Create, configure, build and manage apps.
  • Debug STM32.
You can directly download it from the VSCode marketplace
For more details, visit the Zephyr Workbench

System Workbench for STM32


You are viewing a reply to Delays not working  

Delays not working

France

Hello,

In myDelay2, the error is obvious: you write your loop incorrectly: for (i=0;i>5000000;i++) {}
while it should be for (i=0;i != 5000000;i++) {} ; your loop is in fact never executed: i is initialized to 0 so it’s not greater than 5000000...

For myDelay1, I think the error is a bit more tricky: you probably never get out of myDelay as you don’t initialize the SysTick timer, so should not get any interrupt. Moreover, if you initialize the SysTick timer as usual, you will get interrupts every 10ms, meaning your delay count of 500000 means 5000 seconds: nearly 2 hours!

Note also that you do not initialize the LED outputs, so they are both in the same state (probably ON) at program start and as your delay is either too short or too long you don’t see them blinking...

To debug you can just set a breakpoint in your Delay functions or SysTick_Handler to check what happens.

Hope this helps,

Bernard (Ac6)