summaryrefslogtreecommitdiff
path: root/AT91SAM7S256/Source/d_timer.r
diff options
context:
space:
mode:
Diffstat (limited to 'AT91SAM7S256/Source/d_timer.r')
-rw-r--r--AT91SAM7S256/Source/d_timer.r26
1 files changed, 23 insertions, 3 deletions
diff --git a/AT91SAM7S256/Source/d_timer.r b/AT91SAM7S256/Source/d_timer.r
index 91e9f7b..93c3a3b 100644
--- a/AT91SAM7S256/Source/d_timer.r
+++ b/AT91SAM7S256/Source/d_timer.r
@@ -1,13 +1,13 @@
//
// Date init 14.12.2004
//
-// Revision date $Date:: 16-05-06 10:18 $
+// Revision date $Date:: 23-04-08 11:15 $
//
// Filename $Workfile:: d_timer.r $
//
-// Version $Revision:: 11 $
+// Version $Revision:: 2 $
//
-// Archive $Archive:: /LMS2006/Sys01/Main/Firmware/Source/d_timer.r $
+// Archive $Archive:: /LMS2006/Sys01/Main_V02/Firmware/Source/d_time $
//
// Platform C
//
@@ -19,11 +19,13 @@
#define MS_1_TIME ((OSC/16)/1000)
static ULONG TimerValue;
+static ULONG NextTimerValue;
static ULONG Timer1mS;
/* PIT timer is used as main timer - timer interval is 1mS */
#define TIMERInit TimerValue = ((*AT91C_PITC_PIIR) & AT91C_PITC_CPIV);\
+ NextTimerValue = (((*AT91C_PITC_PIIR) + MS_1_TIME) & AT91C_PITC_CPIV);\
Timer1mS = 0
#define TIMERRead(V) if (MS_1_TIME < ((((*AT91C_PITC_PIIR) & AT91C_PITC_CPIV) - TimerValue) & AT91C_PITC_CPIV))\
@@ -34,6 +36,24 @@ static ULONG Timer1mS;
}\
V = Timer1mS
+#define TIMERReadAlt(V) if((SLONG)((*AT91C_PITC_PIIR) - NextTimerValue) >= 0)\
+ {\
+ Timer1mS ++;\
+ NextTimerValue += MS_1_TIME;\
+ }\
+ V = Timer1mS;\
+
+#define TIMERReadSkip(V) diff= (((*AT91C_PITC_PIIR)) - NextTimerValue);\
+ if (diff >= 0)\
+ {\
+ diff /= MS_1_TIME;\
+ diff += 1;\
+ Timer1mS += diff;\
+ diff *= MS_1_TIME;\
+ NextTimerValue += diff;\
+ }\
+ V = Timer1mS;\
+
#define TIMERExit