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; } |