Modularizando o src
Dependencies: EALib EthernetInterface_vz mbed-rtos mbed
Fork of header_main_colinas_V0-20-09-14 by
wdt.cpp
- Committer:
- klauss
- Date:
- 2015-11-24
- Revision:
- 137:32dd35a6dbc9
- Parent:
- 121:ee02790d00b7
File content as of revision 137:32dd35a6dbc9:
#include "wdt.h" /// Watchdog gets instantiated at the module level Watchdog::Watchdog() { wdreset = (LPC_WDT->MOD >> 2) & 1; // capture the cause of the previous reset } /// Load timeout value in watchdog timer and enable void Watchdog::Configure(float s) { //LPC_WDT->CLKSEL = 0x1; // Set CLK src to PCLK uint32_t clk = 500000 / 4; // WD has a fixed /4 prescaler, and a 500khz oscillator LPC_WDT->TC = ( uint32_t )( s * ( float )clk ); LPC_WDT->MOD = 0x3; // Enabled and Reset kick(); } /// "Service", "kick" or "feed" the dog - reset the watchdog timer /// by writing this required bit pattern void Watchdog::kick() { //x = NVIC_disable_IRQ(); /* antes de desabilitar as irqs, eu preciso salvar o status delas */ //IRQn irqn; //uint16_t ret = NVIC_GetActive( irqn ); //debug_msg( "NVIC_GetActive --%i--", ret ); //debug_msg("+"); //__disable_irq(); //Interrupt ID == 0 -- Exception Number 16 LPC_WDT->FEED = 0xAA; LPC_WDT->FEED = 0x55; //__enable_irq(); //debug_msg("."); } bool Watchdog::WatchdogCausedReset(){ return( this->wdreset ); }