180718 HJM : 8 Count sensing data RF send, certTest, temp(cold)Test

Fork of EV-COG-AD3029LZ by JunMo Hong

Revision:
70:19b5f9b9ba80
Parent:
69:22e9b407effa
Child:
71:4a7772415d9c
--- a/source/SimpleSpirit1.cpp	Mon Jul 10 13:54:43 2017 +0200
+++ b/source/SimpleSpirit1.cpp	Thu Jul 13 09:21:06 2017 +0200
@@ -9,10 +9,20 @@
 
 #define XO_ON                   (0x1)
 
-#define BUSYWAIT_UNTIL(cond, millisecs)                                        					\
-        do {                                                                 					 		\
-            uint32_t start = us_ticker_read();                         							\
-            while (!(cond) && ((us_ticker_read() - start) < ((uint32_t)millisecs)*1000U));	\
+#define BUSYWAIT_UNTIL(cond, millisecs) \
+        do { \
+            uint32_t start = us_ticker_read(); \
+            uint32_t limit = (uint32_t)millisecs*1000U; \
+            \
+            while (!(cond)) { \
+                uint32_t now = us_ticker_read(); \
+                \
+                if(now >= start) { \
+                    if((now - start) > limit) break; \
+                } else { \
+                    if((now + ~start) > limit) break; \
+                } \
+            } \
         } while(0)
 
 #define st_lib_spirit_irqs		SpiritIrqs