STM32 wakeup tlaèítkem

Josef Štengl ok1ced na nagano.cz
Pátek Říjen 25 18:57:33 CEST 2013


Procesor moc neznám ale určitě šlo.

zkuste registr SFTRSTF

a k pochopení snad relevantní kód.

if (PWR_GetFlagStatus(PWR_FLAG_SB))
   puts("System resumed from STANDBY mode");

if (RCC_GetFlagStatus(RCC_FLAG_SFTRST))
   puts("Software Reset");

if (RCC_GetFlagStatus(RCC_FLAG_PORRST))
   puts("Power-On-Reset");

if (RCC_GetFlagStatus(RCC_FLAG_PINRST)) // Always set, test other cases first
   puts("External Pin Reset");

if (RCC_GetFlagStatus(RCC_FLAG_IWDGRST) != RESET)
   puts("Watchdog Reset");

if (RCC_GetFlagStatus(RCC_FLAG_WWDGRST) != RESET)
   puts("Window Watchdog Reset");

if (RCC_GetFlagStatus(RCC_FLAG_LPWRRST) != RESET)
   puts("Low Power Reset");

if (RCC_GetFlagStatus(RCC_FLAG_BORRST) != RESET) // F4 Usually set with POR
   puts("Brown-Out Reset");

RCC_ClearFlag(); // The flags cleared after use

… život je moc krátký na čtení manuálu …

:-)

ced


Dne 25.10.2013 16:31, Michal Grunt napsal(a):
>> Dá se to v main nějak ošetřit, aby to po wakeup skočilo to EXTI0_1_IRQHandler, ale po zapnutí napájení aby se toto ignorovalo?
>
> Resp. asi jsem se blbě vyjádřil. Aby to po probuzení v main nějak detekovalo "probuzení" a  mohl jsem tomu přizpůsobit další kroky (nedělat nic a čekat na EXTI0_1_IRQHandler).
>
> Michal Grunt
>
> -----Original Message-----
> From: hw-list-bounces na list.hw.cz [mailto:hw-list-bounces na list.hw.cz] On Behalf Of Michal Grunt
> Sent: Friday, October 25, 2013 4:28 PM
> To: HW-news
> Subject: RE: STM32 wakeup tlaèítkem
>
> Ještě mám jeden problém. Pokud procesor ze standby probudím tlačítkem, provede se začátek programu - to co je v main(), ale neproběhne celý... přeruší se pokaždé (resp. většinou) na jiném místě a po přerušení hlavního programu se spustí EXTI0_1_IRQHandler. Což je dost nešťastné, protože v podstatě nevím na kterém místě mám připojené zařízení (např. LCD) inicializovat... Dá se to v main nějak ošetřit, aby to po wakeup skočilo to EXTI0_1_IRQHandler, ale po zapnutí napájení aby se toto ignorovalo?
>
> Děkuji
> Michal Grunt
>
> -----Original Message-----
> From: hw-list-bounces na list.hw.cz [mailto:hw-list-bounces na list.hw.cz] On Behalf Of Jaroslav Buchta
> Sent: Thursday, October 03, 2013 8:37 PM
> To: HW-news
> Subject: Re: STM32 wakeup tlaèítkem
>
> Vetsinou program muze otestovat pricinu resetu v nejakem registru a pak se rozhodnout, jak se bude inicializovat. Kdyz je mode hodne usporny, tak nebezi skoro vubec nic a reset je asi nutny, aby procesor zacal nejak fungovat.
>
> Dne 3.10.2013 20:33, Michal Grunt napsal(a):
>> Zkusím tedy hledat a něco otestovat. Pokud se procesor probudí ze standby (teď je jedno jakým způsobem) znamená to, že se vyvolá reset a před provedením přerušení (např. u toho alarmu) se nejdříve provede celý program od začátku? Nebo jak to přesně funguje? Mám k tomu připojené nějaké periferie (LCD) a ten budu "uspávat" taky (vypínat jeho napájení tranzistorem) tak musím někam dostat jeho inicializace po probuzení...
>>
>> Děkuji
>> Michal Grunt
>>
>> ________________________________________
>> Odesílate: hw-list-bounces na list.hw.cz [hw-list-bounces na list.hw.cz] za
>> uživatele Jan Waclawek [konfera na efton.sk]
>> Odesláno: 3. října 2013 19:32
>> To: HW-news
>> Předmět: RE: STM32 wakeup tlaèítkem
>>
>> Priznam sa, ze som standby neskusal, ale podla mna sa prerusenie konat
>> nebude, kedze wakeup zo standby sposobi reset, a tie prerusenia od
>> externych pinov su, pokial viem, na hranu.
>>
>> Ale po tom resete by sa dalo to tlacitko otestovat. Teda samozrejme ho
>> medzicasom mohol dotycny pustit, potom smola...
>>
>> Lepsia moznost je pouzit wakeup na tamper v RTC, ale pokial viem, to
>> F0 nemaju.
>>
>> wek
>>
>>
>> ----- Original Message ---------------
>>
>>> Interrupt od pinu PA0 se dá pøes EXTI0_1_IRQHandler(). STM32F0
>>> Discovery obsahuje funkèní pøíklad. Pou¾ívám to jako "softwarové"
>>> pøeru¹ení, ale funguje to i pøi zatahání za no¾ièku. Ale jak to
>>> zkombinovat s wakeup nevím. Chce to experiment.
>>>
>>> Mrazík
>>>
>>> Michal Grunt pí¹e v Èt 03. 10. 2013 v 15:50 +0000:
>>>> Tak¾e tohle u¾ jsem nìjak poøe¹il, ale pøemý¹lím je¹tì jak vyøe¹it následující... Mám uspaný procesor (pro úplnost Standby mode, stm32f0) a RTC alarm nastaven na nìjaký èas. A¾ tento èas nastane, procesor se probudí a vykoná se RTC_IRQHandler (u alarmu mám nastaveno pøeru¹ení). Ale pokud vyvolám wake up tlaèítkem pøipojeným na PA0 tak pøedpokládám, ¾e se RTC_IRQHandler nevykoná. Dá se na to tlaèítko nastavit zároveò i pøeru¹ení? Prostì potøebuji mít dvì rùzné funkce pro wake up. Jednu na vzbuzení alarmem a druhou na vzbuzení tlaèítkem. Dá se to?
>> _______________________________________________
>> HW-list mailing list  -  sponsored by www.HW.cz Hw-list na list.hw.cz
>> http://list.hw.cz/mailman/listinfo/hw-list
>> _______________________________________________
>> HW-list mailing list  -  sponsored by www.HW.cz Hw-list na list.hw.cz
>> http://list.hw.cz/mailman/listinfo/hw-list
>
> _______________________________________________
> HW-list mailing list  -  sponsored by www.HW.cz Hw-list na list.hw.cz http://list.hw.cz/mailman/listinfo/hw-list
> _______________________________________________
> HW-list mailing list  -  sponsored by www.HW.cz Hw-list na list.hw.cz http://list.hw.cz/mailman/listinfo/hw-list
> _______________________________________________
> HW-list mailing list  -  sponsored by www.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list
>


Další informace o konferenci Hw-list