Beispiel #1
0
/** 
 * @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();
}
Beispiel #2
0
/** 
 * @brief 	WdtRstDemo
 * @param 
 * @return 
 * @note
 */
void WdtRstDemo(void)
{
	ModuleIrqRegister(Wdt_Exception, WdtIrqServiceDemo);
	WdtInit(SCU_OSC_CLK, 1, 2, WDT_RST_MODE);
	WdtFeedDog();
}
Beispiel #3
0
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();
        }
    }
}