Merge branch 'master' of git.dolda2000.com:/srv/git/r/kokare
[kokare.git] / 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)