Added callback to ISR (miceuz)
authorKevin Townsend <kevin@ktownsend.com>
Tue, 24 Apr 2012 10:01:22 +0000 (12:01 +0200)
committerKevin Townsend <kevin@ktownsend.com>
Tue, 24 Apr 2012 10:01:22 +0000 (12:01 +0200)
core/timer32/timer32.c
core/timer32/timer32.h

index 539e961..31e5b01 100644 (file)
@@ -69,7 +69,7 @@
 
 volatile uint32_t timer32_0_counter = 0;
 volatile uint32_t timer32_1_counter = 0;
-void (*interruptHandler)(void) = NULL;
+void (*interruptHandler0)(void) = NULL;
 
 /**************************************************************************/
 /*! 
@@ -124,19 +124,6 @@ void timer32Delay(uint8_t timerNum, uint32_t delay)
   return;
 }
 
-uint32_t timer32GetCount(uint8_t timerNum) {
-    if(0 == timerNum) {
-        return timer32_0_counter;
-    } else {
-        return timer32_1_counter;
-    }
-    
-}
-
-void timer32SetIntHandler(void (*handler)(void)) {
-    interruptHandler = handler;
-}
-
 /**************************************************************************/
 /*! 
     @brief Interrupt handler for 32-bit timer 0
@@ -144,9 +131,12 @@ void timer32SetIntHandler(void (*handler)(void)) {
 /**************************************************************************/
 void TIMER32_0_IRQHandler(void)
 {  
-    if(NULL != interruptHandler) {
-        (*interruptHandler)();
+    /* Call the callback function if required */
+    if(NULL != interruptHandler0) 
+    {
+        (*interruptHandler0)();
     }
+
     /* Clear the interrupt flag */
     TMR_TMR32B0IR = TMR_TMR32B0IR_MR0;
 
@@ -358,11 +348,46 @@ void timer32Init(uint8_t timerNum, uint32_t timerInterval)
   return;
 }
 
-void timer32ResetCounter(uint8_t timerNum){
-    if(0 == timerNum){
+/**************************************************************************/
+/*! 
+    @brief Sets the optional callback function for 32-bit timer 0
+*/
+/**************************************************************************/
+void timer32SetIntHandler(void (*handler)(void)) 
+{
+    interruptHandler0 = handler;
+}
+
+/**************************************************************************/
+/*! 
+    @brief Returns the value of the auto-incrementing timer counter(s)
+*/
+/**************************************************************************/
+uint32_t timer32GetCount(uint8_t timerNum) 
+{
+    if (0 == timerNum) 
+    {
+        return timer32_0_counter;
+    } 
+    else 
+    {
+        return timer32_1_counter;
+    }    
+}
+
+/**************************************************************************/
+/*! 
+    @brief Resets the auto-incrementing timer counter(s)
+*/
+/**************************************************************************/
+void timer32ResetCounter(uint8_t timerNum)
+{
+    if (0 == timerNum)
+    {
         timer32_0_counter = 0;
-    } else if(1 == timerNum) {
+    } 
+    else if (1 == timerNum) 
+    {
         timer32_1_counter = 0;
     }
 }
-
index f09b995..71ae253 100644 (file)
@@ -62,7 +62,7 @@ void timer32Enable(uint8_t timerNum);
 void timer32Disable(uint8_t timerNum);
 void timer32Reset(uint8_t timerNum);
 void timer32Init(uint8_t timerNum, uint32_t timerInterval);
-uint32_t timer32GetCount(uint8_t timerNum);
 void timer32SetIntHandler(void (*handler)(void));
+uint32_t timer32GetCount(uint8_t timerNum);
 void timer32ResetCounter(uint8_t);
 #endif
This page took 0.036398 seconds and 4 git commands to generate.