Loading...
 

STM32MP1 support available in SW4STM32

   With System Workbench for Linux, Embedded Linux on the STM32MP1 family of MPUs from ST was never as simple to build and maintain, even for newcomers in the Linux world.
And, if you install System Workbench for Linux in System Workbench for STM32 you can seamlessly develop and debug asymmetric applications running partly on Linux, partly on the Cortex-M4; you can download a short video showcasing this on the ac6-tools website (registration required).

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)