Functions which handle the time. More...
Modules | |
Advanced informations | |
Macros | |
#define | kTimeMaxCycleCount |
constant (5): Maximum number of cyclic called functions | |
Enumerations | |
enum | eTimeGet |
clusters select values for reading parts of the current time More... | |
Clock Funktions | |
uint32_t | time_get (eTimeGet select) |
Returns the selected time value. More... | |
void | time_clear (void) |
Clears the internal time value. More... | |
Delay Funktions | |
void | mdelay (uint16_t mseconds) |
Waits for the given time in milliseconds. More... | |
void | udelay (uint16_t useconds) |
Waits for 10 times the given time in microseconds. More... | |
Cyclic Funktions | |
uint8_t | time_cycleAdd (void *function, uint8_t interval) |
Adds a function to the cyclic called functions. More... | |
void | time_cycleClear (uint8_t id) |
Removes a function from the cyclic called functions. More... | |
Functions which handle the time.
The robot uses two timers for internal timing:
The systick is used to create the servo signal, for time measurement and for triggering user events. User events (function pointers) can be set by calling the function time_cycleAdd(). A more detailed description can be found here.
The fasttick is used to check the TSOP sensors for an incoming ir-signal and for adc measurements of the Sharp distance sensors.
enum eTimeGet |
clusters select values for reading parts of the current time
Enumerator | |
---|---|
kTimeGetTicks | constant (0): ticks (0.25 ms) |
kTimeGetMinutes | constant (1): minutes |
kTimeGetSeconds | constant (2): seconds |
kTimeGetHundredths | constant (3): hundredths of a second |
void mdelay | ( | uint16_t | mseconds | ) |
Waits for the given time in milliseconds.
mseconds | 16-bit unsigned integer If mseconds is 56, then the CPU will wait for 56 milliseconds. |
void time_clear | ( | void | ) |
uint8_t time_cycleAdd | ( | void * | function, |
uint8_t | interval | ||
) |
Adds a function to the cyclic called functions.
There can be at maximum kTimeMaxCycleCount cyclic functions.
To turn the cyclic operation off use time_cycleClear().
function | function of type "void fct(void)" Function with no parameters and no return value. To wrap the function call a pointer is used internally. |
interval | 8-bit unsigned integer The parameter is an integer representing the cycle time in hundredths of a second. E.g. 12 will call the function every 120ms. If 0 or 1 is used the function will be called every 10ms. |
void time_cycleClear | ( | uint8_t | id | ) |
Removes a function from the cyclic called functions.
id | 8-bit unsigned integer (1..5, 0xFF) The id parameter is the id of the cyclic called function. If id is set to 0xFF all cyclic functions are stopped. |
uint32_t time_get | ( | eTimeGet | select | ) |
Returns the selected time value.
The internal time variable is always up to date - no request is needed.
The time is cleared at system start and by the function time_clear().
select | value of the selected time - see also eTimeGet |
select | range |
kTimeGetTicks | full 32-bit |
kTimeGetMinutes | 0..59 |
kTimeGetSeconds | 0..59 |
kTimeGetHundredths | 0..99 |
void udelay | ( | uint16_t | useconds | ) |
Waits for 10 times the given time in microseconds.
useconds | 16-bit unsigned integer If useconds is 42, then the CPU will wait for 420 microseconds. |