This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

WFI() - call in os_idle_demon() in RTX_Config.h

Hello there,

I'm relatively new to STM32- and RL-ARM-Programming. I'm using Keil, the STM32F107VC-controller, the standard peripheral library and the RTX-Kernel.

I am developing a device, which will work user driven: Only when the user pushs a button, the system has to work a short time. Beside that, every 10 to 20 seconds some device states (e.g.: battery status) have to be checked.

So the device will mostly wait for user input in the os_idle_demon()-task. To save power, I want to put the controller into sleep-mode. Therefore, I'm calling __WFI() in the endless loop of the os_idle_demon()-task.

My problem is, that __WFI() returns immediately and doesn't wait for any interrupt. I assume, that some OS-timer generate interrupts, so that __WFI() returns immediately. Does anybody has an idea, how I can put the device to sleep reliably? I can't use a stop mode, because I also want to be able to use timer-interrupts.

I wrote a similar code, where I called __WFI() from the main loop (without RTX-support) and it worked fine. So the structure of my code doesn't seem to have failures.

Greetings,
Hardy

0