/** * @brief WdtIntRstDemo * @param * @return * @note * -Make Sure System Clock is MUCH FASTER than Wdt Clock! */ void WdtIntRstDemo(void) { ScuSysClkDivSet(SCU_CLKDIV_0); ModuleIrqRegister(Wdt_Exception, WdtIrqServiceDemo0); WdtInit(SCU_OSC_CLK, 0xFF, 0, WDT_INT_RST_MODE); WdtFeedDog(); }
/** * @brief WdtRstDemo * @param * @return * @note */ void WdtRstDemo(void) { ModuleIrqRegister(Wdt_Exception, WdtIrqServiceDemo); WdtInit(SCU_OSC_CLK, 1, 2, WDT_RST_MODE); WdtFeedDog(); }
int main( void ) { WdtInit(); InterruptControllerInit(); EventLogInit(); GpioInit(); // Configure !RSN/NMI pin for NMI mode early ConfigureRstNmi(); ConfigureFll(); V1( EventLogAdd( EVENTLOG_TIMER_INIT ) ); TimerInit(); WdtStartTimer(); V1( EventLogAdd( EVENTLOG_SPI_INIT ) ); SpiInit(); #if !defined( PLATFORM_RIMEVALBOARD ) HostCtrlPmicRegisterReset( RESET_LCD_IO ); #if defined( PROCESSOR_PMU430 ) //resetting the fuel gauge LDO PmicClear( PMIC_VRTC, 1<<7 ); HwDelay(25000000); //25 ms delay PmicSet( PMIC_VRTC, 1<<7 ); #endif #endif ApiInit(); #if defined( DEVID_UPDATER_SUPPORT ) CodeUpdateStateInit( ); #endif V1( EventLogAdd( EVENTLOG_ADC_HW_INIT ) ); AdcInitHw(); V1( EventLogAdd( EVENTLOG_MSGQUE_INIT ) ); CallQueueInit(); V1( EventLogAdd( EVENTLOG_PMIC_INTCTRL_INIT ) ); PmicIntCtrlInit(); // configure charger interrupt handler PmicRegisterIntHandler( INT_CHARGER_IRQ, ChargerHandler ); PmicInterruptEnable( INT_CHARGER_IRQ ); // enable battery insertion/removal interrupts PmicWrite( PMIC_CHG_INT, 0x00 ); PmicClear( PMIC_CHG_INT_MASK, CHGINT_MASK_BAT ); PmicClear( PMIC_MIRQ, INT_MASK_CHARGER ); I2cInitInternalBus(); // Need to enable GIE (PoR default is OFF) __enable_interrupt(); RegisterTimerExpiry( RTC_EXTERNAL_XTAL_TIMER, SwitchToXtal, 0 ); // switch to external xtal after 2 seconds SetTimer( RTC_EXTERNAL_XTAL_TIMER, 0x10000 ); #if defined( PLATFORM_RIMEVALBOARD ) I2cInit(); #else HostCtrlInit(); #endif for (;;) { WdtHit(); if( !ExecuteCall() ) { // if there was nothing to call, enter sleep mode SCSleep(); } } }