void WDT_Enable( uint32_t timeout_ms )
{
// Internal RC osc.
LPC_WDT->WDCLKSEL = 0x00;
uint64_t wdt_clk = 4000000/ 4;
uint64_t wdtc = ( ( uint64_t )timeout_msec * wdt_clk ) / 1000;
LPC_WDT->WDTC = ( uint32_t )wdtc;
LPC_WDT->WDMOD = 0x03;
LPC_WDT->WDFEED = 0xAA;
LPC_WDT->WDFEED = 0x55;
}
void Power_Down_Mode_Set( void )
{
SCB->SCR = 0x4;
LPC_SC->PCON = 0x9;
__WFI();
}
int main( void )
{
Led2_init( );
Led2_Toggle( );
delay( 1000 );
Led2_Toggle( );
WDT_Enable( 2000 ); // 2 sec
Power_Down_Mode_Set( );
return 1;
}
|