EVE 1.0
Collaboration diagram for Clock library:

Macros

#define CLOCK_SECOND
 

Functions

void clock_init (void)
 
CCIF clock_time_t clock_time (void)
 
CCIF unsigned long clock_seconds (void)
 
void clock_set_seconds (unsigned long sec)
 
void clock_wait (clock_time_t t)
 
void clock_delay_usec (uint16_t dt)
 
int clock_fine_max (void)
 

Detailed Description

The clock library is the interface between Contiki and the platform specific clock functionality. The clock library defines a macro, CLOCK_SECOND, to convert seconds into the tick resolution of the platform. Typically this is 1-10 milliseconds, e.g. 4*CLOCK_SECOND could be 512. A 16 bit counter would thus overflow every 1-10 minutes. Platforms use the tick interrupt to maintain a long term count of seconds since startup.

Platforms may also implement rtimers for greater time resolution and for real-time interrupts, These use a corresponding RTIMER_SECOND.

Note
These timers do not necessarily have a common divisor or are phase locked. One may be crystal controlled and the other may not. Low power operation or sleep will often use one for wake and disable the other, then give it a tick correction after wakeup.
The clock library need in many cases not be used directly. Rather, the timer library, event timers, or rtimer library should be used.
See also
Timer library
Event timers
Realtime library

Macro Definition Documentation

#define CLOCK_SECOND

A second, measured in system clock time.

Definition at line 81 of file clock.h.

Referenced by tcpip_input().

Function Documentation

void clock_init ( void  )

Initialize the clock library.

This function initializes the clock library and should be called from the main() function of the system.

Definition at line 170 of file clock.c.

CCIF clock_time_t clock_time ( void  )

Get the current clock time.

This function returns the current system clock time.

Returns
The current clock time, measured in system ticks.

Definition at line 195 of file clock.c.

Referenced by clock_wait(), timer_expired(), timer_remaining(), timer_restart(), and timer_set().

CCIF unsigned long clock_seconds ( void  )

Get the current value of the platform seconds.

This could be the number of seconds since startup, or since a standard epoch.

Returns
The value.

Definition at line 201 of file clock.c.

Referenced by stimer_elapsed(), stimer_expired(), stimer_remaining(), stimer_restart(), and stimer_set().

void clock_set_seconds ( unsigned long  sec)

Set the value of the platform seconds.

Parameters
secThe value to set.

Definition at line 207 of file clock.c.

void clock_wait ( clock_time_t  t)

Wait for a given number of ticks.

Parameters
tHow many ticks.

Definition at line 214 of file clock.c.

References clock_time(), PM_LOCK, pm_relax(), PM_UNLOCK, and pm_wakeup().

void clock_delay_usec ( uint16_t  dt)

Delay a given number of microseconds.

Parameters
dtHow many microseconds to delay.
Note
Interrupts could increase the delay by a variable amount.

Definition at line 244 of file clock.c.

References etimer_next_expiration_time(), PM_LOCK, pm_relax(), PM_UNLOCK, uwork_now(), uwork_pending(), uwork_schedule(), and UWORK_USEC.

int clock_fine_max ( void  )

Deprecated platform-specific routines.