36 #include <sys/clock.h>
41 #include "contiki-conf.h"
44 #define MAX_TICKS (~((clock_time_t)0) / 2)
46 static volatile clock_time_t current_clock = 0;
48 volatile unsigned long seconds = 0;
50 static struct rtimer rt_clock;
55 rt_do_clock(
struct rtimer *t,
void *ptr)
58 (rtimer_callback_t)rt_do_clock, ptr);
62 if((current_clock % CLOCK_CONF_SECOND) == 0) {
96 clock_time_t endticks = current_clock + t;
97 while ((
signed long)(current_clock - endticks) < 0) {;}
108 if(howlong<2)
return;
111 volatile register uint32_t i=*MACA_CLK+howlong/4;
112 while (i > *MACA_CLK) ;
117 volatile register uint32_t i=4000*howlong/2301;
138 if(howlong--)
return;
147 seconds+=howmany/CLOCK_CONF_SECOND;
149 if(((current_clock % CLOCK_CONF_SECOND) + (howmany % CLOCK_CONF_SECOND)) >= CLOCK_CONF_SECOND) seconds++;
151 current_clock+=howmany;