From 93a5e2696beecae5b13f85e0534585246314c8f3 Mon Sep 17 00:00:00 2001 From: Stefan `Sec` Zehl Date: Mon, 13 Jun 2011 23:19:18 +0200 Subject: [PATCH] Enable systick (10ms) by default and allow modules to be called from systick Also add VoltageCheck once per sec by default --- core/systick/systick.c | 16 +++------------- modules/default.c | 15 ++++++++++++++- modules/mkwrapper | 10 ++++++++++ 3 files changed, 27 insertions(+), 14 deletions(-) diff --git a/core/systick/systick.c b/core/systick/systick.c index ebf50b8..bbec5e5 100644 --- a/core/systick/systick.c +++ b/core/systick/systick.c @@ -63,14 +63,11 @@ #include "systick.h" -#ifdef CFG_SDCARD -#include "drivers/fatfs/diskio.h" -volatile uint32_t fatTicks = 0; -#endif - volatile uint32_t systickTicks = 0; // 1ms tick counter volatile uint32_t systickRollovers = 0; +void tick_wrapper(void); + /**************************************************************************/ /*! @brief Systick interrupt handler @@ -83,14 +80,7 @@ void SysTick_Handler (void) // Increment rollover counter if (systickTicks == 0xFFFFFFFF) systickRollovers++; - #ifdef CFG_SDCARD - fatTicks++; - if (fatTicks == 10) - { - fatTicks = 0; - disk_timerproc(); - } - #endif + tick_wrapper(); } /**************************************************************************/ diff --git a/modules/default.c b/modules/default.c index 33bf3de..3d2f8d2 100644 --- a/modules/default.c +++ b/modules/default.c @@ -3,5 +3,18 @@ /**************************************************************************/ void module_default(void) { + systickInit(10); return; -} +}; + +// every 10 ms +void tick_default(void) { + static int ctr; + ctr++; + if(ctr>100){ + VoltageCheck(); + ctr=0; + }; + + return; +}; diff --git a/modules/mkwrapper b/modules/mkwrapper index 2b6ef98..8a3f1e2 100755 --- a/modules/mkwrapper +++ b/modules/mkwrapper @@ -3,6 +3,7 @@ for a in $* ; do base=${a%.o} echo "void module_$base(void);" + echo "void tick_$base(void);" done echo @@ -14,3 +15,12 @@ for a in $* ; do done echo "}" + +echo "void tick_wrapper(void){" + +for a in $* ; do + base=${a%.o} + grep -q \ tick_$base ${base}.c && echo "tick_$base();" +done + +echo "}"