Merge branch 'master' of git.dolda2000.com:/srv/git/r/kokare
authorFredrik Tolf <fredrik@dolda2000.com>
Wed, 4 Jul 2007 23:46:02 +0000 (01:46 +0200)
committerFredrik Tolf <fredrik@dolda2000.com>
Wed, 4 Jul 2007 23:46:02 +0000 (01:46 +0200)
kokare.c

index 64c3754..38662bb 100644 (file)
--- a/kokare.c
+++ b/kokare.c
@@ -149,7 +149,16 @@ void disphex(unsigned char num)
 
 unsigned long getticks(void)
 {
-    return(TCNT1 + (((unsigned long)oticks) << 16));
+    uint16_t v;
+    unsigned long r;
+    
+    cli();
+    v = TCNT1;
+    r = v + (((unsigned long)oticks) << 16);
+    if((TIFR1 & 0x01) && !(v & 0x8000))
+       r += 0x10000;
+    sei();
+    return(r);
 }
 
 void ledcycle(void)