From d12b2c4daeb139def25185f7379879a9ce1784d2 Mon Sep 17 00:00:00 2001 From: Mateusz Lubecki Date: Mon, 23 Aug 2021 21:20:38 +0200 Subject: [PATCH] first working prototype of freezing micro in STOP2 --- .../ParaMETEO-STM32L476RG.launch | 2 +- src/it_handlers.c | 10 +++++++++- src/pwr_save.c | 5 +++-- 3 files changed, 13 insertions(+), 4 deletions(-) diff --git a/doc/eclipse_debugger_launch/ParaMETEO-STM32L476RG.launch b/doc/eclipse_debugger_launch/ParaMETEO-STM32L476RG.launch index 17e07fb..d6a9427 100644 --- a/doc/eclipse_debugger_launch/ParaMETEO-STM32L476RG.launch +++ b/doc/eclipse_debugger_launch/ParaMETEO-STM32L476RG.launch @@ -1,6 +1,6 @@ - + diff --git a/src/it_handlers.c b/src/it_handlers.c index 11e5bc2..9a0d4c0 100644 --- a/src/it_handlers.c +++ b/src/it_handlers.c @@ -87,6 +87,14 @@ void RTC_WKUP_IRQHandler(void) { RTC->ISR &= (0xFFFFFFFF ^ RTC_ISR_WUTF_Msk); EXTI->PR1 |= EXTI_PR1_PIF20; + + system_clock_configure_l4(); + + led_flip_led1_upper(); + + led_flip_led2_bottom(); + + led_control_led1_upper(true); } #endif @@ -199,7 +207,7 @@ void TIM7_IRQHandler(void) { // io_ext_watchdog_service(); AdcValue = (short int)(( AdcBuffer[0] + AdcBuffer[1] + AdcBuffer[2] + AdcBuffer[3]) >> 1); AFSK_ADC_ISR(&main_afsk, (AdcValue - 4095) ); - led_control_led1_upper(main_ax25.dcd); + led_control_led1_upper(main_ax25.dcd); // TODO ASC = 0; if (ASC2++ == 2) { diff --git a/src/pwr_save.c b/src/pwr_save.c index 69edff2..27309de 100644 --- a/src/pwr_save.c +++ b/src/pwr_save.c @@ -87,9 +87,10 @@ void pwr_save_enter_stop2(void) { DBGMCU->CR &= (0xFFFFFFFF ^ (DBGMCU_CR_DBG_SLEEP_Msk | DBGMCU_CR_DBG_STOP_Msk | DBGMCU_CR_DBG_STANDBY_Msk)); // disabling all IRQs - __disable_irq(); + //__disable_irq(); - asm ("wfe"); + asm("sev"); + asm("wfi"); }