Re-init Timer if powered down

pull/349/head
tkuyucu 2014-06-10 14:51:48 +02:00
parent 35602c21be
commit 21a8a92e87
2 changed files with 15 additions and 7 deletions

View File

@ -21,6 +21,10 @@
#include <stdio.h>
#endif
#ifdef __cplusplus
extern "C" {
#endif
WEAK void error(const char* format, ...);
WEAK void error(const char* format, ...) {
#if DEVICE_STDIO_MESSAGES
@ -31,3 +35,7 @@ WEAK void error(const char* format, ...) {
#endif
exit(1);
}
#ifdef __cplusplus
}
#endif

View File

@ -62,7 +62,7 @@ void TIMER1_IRQHandler(void){
}
#endif
void us_ticker_init(void){
if (us_ticker_inited){
if (us_ticker_inited && US_TICKER_TIMER->POWER){
return;
}
@ -75,18 +75,18 @@ void us_ticker_init(void){
US_TICKER_TIMER->PRESCALER = 4;
US_TICKER_TIMER->BITMODE = TIMER_BITMODE_BITMODE_16Bit;
US_TICKER_TIMER->TASKS_CLEAR =1;
US_TICKER_TIMER->CC[1] = 0xFFFF;
US_TICKER_TIMER->INTENSET = TIMER_INTENSET_COMPARE1_Set << TIMER_INTENSET_COMPARE1_Pos;
US_TICKER_TIMER->TASKS_CLEAR =1;
US_TICKER_TIMER->CC[1] = 0xFFFF;
US_TICKER_TIMER->INTENSET = TIMER_INTENSET_COMPARE1_Set << TIMER_INTENSET_COMPARE1_Pos;
NVIC_SetPriority(US_TICKER_TIMER_IRQn, 3);
NVIC_SetPriority(US_TICKER_TIMER_IRQn, 3);
NVIC_EnableIRQ(US_TICKER_TIMER_IRQn);
US_TICKER_TIMER->TASKS_START = 0x01;
}
uint32_t us_ticker_read(){
if (!us_ticker_inited){
if (!us_ticker_inited || US_TICKER_TIMER->POWER==0){
us_ticker_init();
}
@ -101,7 +101,7 @@ uint32_t us_ticker_read(){
}
void us_ticker_set_interrupt(unsigned int timestamp){
if (!us_ticker_inited)
if (!us_ticker_inited || US_TICKER_TIMER->POWER==0)
{
us_ticker_init();
}