Witam,
tak sobie czytam ten wątek i mam pewne spostrzeżenia
![Puszcza oko ;-)](https://forum.atnel.pl/images/smilies/icon_e_wink.gif)
- zakładając, że korzystasz z gcc, musi być __asm volatile (...) - "__asm" - z dwoma "podłogami" na początku, a "volatile" po spacji - wiadomo, co znaczy, tu chodzi konkretnie o to, aby kompilator, w swej "nieograniczonej mądrości" nie próbował tego optymalizować,
- w przypadku rdzeni Cortex, nie do końca jest sensowne liczenie cykli procesora - upraszczając, ze względu na różne czasy dostępu do różnych pamięci, instrukcje niekoniecznie muszą się wykonywać "po kolei" ( kol.
bastik - poczytaj o instrukcjach dmb, dsb, isb ), więc jeśli już ktoś koniecznie chce robić pętle opóźniające w *.asm, to "ma trochę pod górkę
![Puszcza oko ;-)](https://forum.atnel.pl/images/smilies/icon_e_wink.gif)
,
- pobór prądu przez timer jest pomijalny do poboru prądu przez rdzeń jako taki, więc jeśli już potrzebne są precyzyjne opóźnienia, to tego 'delaya' należy zrobić na timerze, można tu wykorzystać SysTicka - to jest peryferium "rdzeniowe", więc jeśli chodzi o pobór prądu, jest praktycznie "za darmo",
- dla dłuższych opóźnień można skorzystać z RTC, co ma o tyle sens, że RTC pobiera prądu "tyle, co kot napłakał" - nawet razem z generatorem LSI,
- zastrzegam, że nie piszę niczego poważnego w *.asm na Cortex-y, nie po to zrezygnowałem z '51, żeby nadal się "w tym babrać" i koledze
bastik też to polecam
![Puszcza oko ;-)](https://forum.atnel.pl/images/smilies/icon_e_wink.gif)
,
Pozdrawiam serdecznie, QuadMan.