# Timer library

## Data Structures
struct | timer
## Files
file | timer.c
file | timer.h
## Functions
void | timer_set (struct timer *t, clock_time_t interval)
void | timer_reset (struct timer *t)
void | timer_restart (struct timer *t)
int | timer_expired (struct timer *t)

## Detailed Description

The timer library provides functions for setting, resetting and restarting timers, and for checking if a timer has expired. An application must "manually" check if its timers have expired; this is not done automatically.

A timer is declared as a `struct` `timer` and all access to the timer is made by a pointer to the declared timer.

Note:
  The timer library uses the Clock library to measure time. Intervals should be specified in the format used by the clock library.

## Function Documentation

int timer_expired | ( | struct timer * | t | ) |

Check if a timer has expired.

This function tests if a timer has expired and returns true or false depending on its status.

Parameters:

  | t | A pointer to the timer

Returns:
  Non-zero if the timer has expired, zero otherwise.

Here is the call graph for this function:

void timer_reset | ( | struct timer * | t | ) |

Reset the timer with the same interval.

This function resets the timer with the same interval that was given to the timer_set() function. The start point of the interval is the exact time that the timer last expired. Therefore, this function will cause the timer to be stable over time, unlike the timer_rester() function.

Parameters:

  | t | A pointer to the timer.

See also:
  timer_restart()

void timer_restart | ( | struct timer * | t | ) |

Restart the timer from the current point in time

This function restarts a timer with the same interval that was given to the timer_set() function. The timer will start at the current time.

Note:
  A periodic timer will drift if this function is used to reset it. For preioric timers, use the timer_reset() function instead.

Parameters:

  | t | A pointer to the timer.

See also:
  timer_reset()

Here is the call graph for this function:

void timer_set | ( | struct timer * | t,
|  | clock_time_t | interval |
| ) |  |  |

Set a timer.

This function is used to set a timer for a time sometime in the future. The function timer_expired() will evaluate to true after the timer has expired.

Parameters:

  | t | A pointer to the timer
  | interval | The interval before the timer expires.

Here is the call graph for this function: