application: move RTC initialisation before watchdog in case the locking needs more time
This commit is contained in:
parent
4a96073898
commit
ca4d41e79f
|
@ -332,19 +332,6 @@ void main(void)
|
||||||
{
|
{
|
||||||
rcc_clock_setup_in_hse_8mhz_out_72mhz(); // use 8 MHz high speed external clock to generate 72 MHz internal clock
|
rcc_clock_setup_in_hse_8mhz_out_72mhz(); // use 8 MHz high speed external clock to generate 72 MHz internal clock
|
||||||
|
|
||||||
#if DEBUG
|
|
||||||
// enable functionalities for easier debug
|
|
||||||
DBGMCU_CR |= DBGMCU_CR_IWDG_STOP; // stop independent watchdog counter when code is halted
|
|
||||||
DBGMCU_CR |= DBGMCU_CR_WWDG_STOP; // stop window watchdog counter when code is halted
|
|
||||||
DBGMCU_CR |= DBGMCU_CR_STANDBY; // allow debug also in standby mode (keep digital part and clock powered)
|
|
||||||
DBGMCU_CR |= DBGMCU_CR_STOP; // allow debug also in stop mode (keep clock powered)
|
|
||||||
DBGMCU_CR |= DBGMCU_CR_SLEEP; // allow debug also in sleep mode (keep clock powered)
|
|
||||||
#else
|
|
||||||
// setup watchdog to reset in case we get stuck (i.e. when an error occurred)
|
|
||||||
iwdg_set_period_ms(WATCHDOG_PERIOD); // set independent watchdog period
|
|
||||||
iwdg_start(); // start independent watchdog
|
|
||||||
#endif
|
|
||||||
|
|
||||||
board_setup(); // setup board
|
board_setup(); // setup board
|
||||||
uart_setup(); // setup USART (for printing)
|
uart_setup(); // setup USART (for printing)
|
||||||
usb_cdcacm_setup(); // setup USB CDC ACM (for printing and DFU)
|
usb_cdcacm_setup(); // setup USB CDC ACM (for printing and DFU)
|
||||||
|
@ -359,6 +346,26 @@ void main(void)
|
||||||
ir_nec_setup(true); // setup ID NEC code decoder
|
ir_nec_setup(true); // setup ID NEC code decoder
|
||||||
printf("\nwelcome to the CuVoodoo STM32F1 spark strober\n"); // print welcome message
|
printf("\nwelcome to the CuVoodoo STM32F1 spark strober\n"); // print welcome message
|
||||||
|
|
||||||
|
// setup RTC
|
||||||
|
printf("setup internal RTC: ");
|
||||||
|
rtc_auto_awake(RCC_LSE, 32768-1); // ensure internal RTC is on, uses the 32.678 kHz LSE, and the prescale is set to our tick speed, else update backup registers accordingly (power off the micro-controller for the change to take effect)
|
||||||
|
rtc_interrupt_enable(RTC_SEC); // enable RTC interrupt on "seconds"
|
||||||
|
nvic_enable_irq(NVIC_RTC_IRQ); // allow the RTC to interrupt
|
||||||
|
printf("OK\n");
|
||||||
|
|
||||||
|
#if DEBUG
|
||||||
|
// enable functionalities for easier debug
|
||||||
|
DBGMCU_CR |= DBGMCU_CR_IWDG_STOP; // stop independent watchdog counter when code is halted
|
||||||
|
DBGMCU_CR |= DBGMCU_CR_WWDG_STOP; // stop window watchdog counter when code is halted
|
||||||
|
DBGMCU_CR |= DBGMCU_CR_STANDBY; // allow debug also in standby mode (keep digital part and clock powered)
|
||||||
|
DBGMCU_CR |= DBGMCU_CR_STOP; // allow debug also in stop mode (keep clock powered)
|
||||||
|
DBGMCU_CR |= DBGMCU_CR_SLEEP; // allow debug also in sleep mode (keep clock powered)
|
||||||
|
#else
|
||||||
|
// setup watchdog to reset in case we get stuck (i.e. when an error occurred)
|
||||||
|
iwdg_set_period_ms(WATCHDOG_PERIOD); // set independent watchdog period
|
||||||
|
iwdg_start(); // start independent watchdog
|
||||||
|
#endif
|
||||||
|
|
||||||
#if !(DEBUG)
|
#if !(DEBUG)
|
||||||
// show watchdog information
|
// show watchdog information
|
||||||
printf("setup watchdog: %.2fs",WATCHDOG_PERIOD/1000.0);
|
printf("setup watchdog: %.2fs",WATCHDOG_PERIOD/1000.0);
|
||||||
|
@ -371,12 +378,6 @@ void main(void)
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// setup RTC
|
|
||||||
printf("setup internal RTC: ");
|
|
||||||
rtc_auto_awake(RCC_LSE, 32768-1); // ensure internal RTC is on, uses the 32.678 kHz LSE, and the prescale is set to our tick speed, else update backup registers accordingly (power off the micro-controller for the change to take effect)
|
|
||||||
rtc_interrupt_enable(RTC_SEC); // enable RTC interrupt on "seconds"
|
|
||||||
nvic_enable_irq(NVIC_RTC_IRQ); // allow the RTC to interrupt
|
|
||||||
printf("OK\n");
|
|
||||||
|
|
||||||
// setup terminal
|
// setup terminal
|
||||||
terminal_prefix = ""; // set default prefix
|
terminal_prefix = ""; // set default prefix
|
||||||
|
|
Loading…
Reference in New Issue