|
ChibiOS
21.6.0
|

Time and Virtual Timers related APIs and services.
Functions | |
| static void | vt_insert_first (virtual_timers_list_t *vtlp, virtual_timer_t *vtp, systime_t now, sysinterval_t delay) |
| Inserts a timer as first element in a delta list. More... | |
| static void | vt_enqueue (virtual_timers_list_t *vtlp, virtual_timer_t *vtp, systime_t now, sysinterval_t delay) |
| Enqueues a virtual timer in a virtual timers list. More... | |
| void | chVTDoSetI (virtual_timer_t *vtp, sysinterval_t delay, vtfunc_t vtfunc, void *par) |
| Enables a one-shot virtual timer. More... | |
| void | chVTDoSetContinuousI (virtual_timer_t *vtp, sysinterval_t delay, vtfunc_t vtfunc, void *par) |
| Enables a continuous virtual timer. More... | |
| void | chVTDoResetI (virtual_timer_t *vtp) |
| Disables a Virtual Timer. More... | |
| sysinterval_t | chVTGetRemainingIntervalI (virtual_timer_t *vtp) |
| Returns the remaining time interval before next timer trigger. More... | |
| void | chVTDoTickI (void) |
| Virtual timers ticker. More... | |
| systimestamp_t | chVTGetTimeStampI (void) |
| Generates a monotonic time stamp. More... | |
| void | chVTResetTimeStampI (void) |
| Resets and re-synchronizes the time stamps monotonic counter. More... | |
| static void | chVTObjectInit (virtual_timer_t *vtp) |
Initializes a virtual_timer_t object. More... | |
| static systime_t | chVTGetSystemTimeX (void) |
| Current system time. More... | |
| static systime_t | chVTGetSystemTime (void) |
| Current system time. More... | |
| static sysinterval_t | chVTTimeElapsedSinceX (systime_t start) |
| Returns the elapsed time since the specified start time. More... | |
| static bool | chVTIsSystemTimeWithinX (systime_t start, systime_t end) |
| Checks if the current system time is within the specified time window. More... | |
| static bool | chVTIsSystemTimeWithin (systime_t start, systime_t end) |
| Checks if the current system time is within the specified time window. More... | |
| static bool | chVTGetTimersStateI (sysinterval_t *timep) |
| Returns the time interval until the next timer event. More... | |
| static bool | chVTIsArmedI (const virtual_timer_t *vtp) |
Returns true if the specified timer is armed. More... | |
| static bool | chVTIsArmed (const virtual_timer_t *vtp) |
Returns true if the specified timer is armed. More... | |
| static void | chVTResetI (virtual_timer_t *vtp) |
| Disables a Virtual Timer. More... | |
| static void | chVTReset (virtual_timer_t *vtp) |
| Disables a Virtual Timer. More... | |
| static void | chVTSetI (virtual_timer_t *vtp, sysinterval_t delay, vtfunc_t vtfunc, void *par) |
| Enables a one-shot virtual timer. More... | |
| static void | chVTSet (virtual_timer_t *vtp, sysinterval_t delay, vtfunc_t vtfunc, void *par) |
| Enables a one-shot virtual timer. More... | |
| static void | chVTSetContinuousI (virtual_timer_t *vtp, sysinterval_t delay, vtfunc_t vtfunc, void *par) |
| Enables a continuous virtual timer. More... | |
| static void | chVTSetContinuous (virtual_timer_t *vtp, sysinterval_t delay, vtfunc_t vtfunc, void *par) |
| Enables a continuous virtual timer. More... | |
| static sysinterval_t | chVTGetReloadIntervalX (virtual_timer_t *vtp) |
| Returns the current reload value. More... | |
| static void | chVTSetReloadIntervalX (virtual_timer_t *vtp, sysinterval_t reload) |
| Changes a timer reload time interval. More... | |
| static systimestamp_t | chVTGetTimeStamp (void) |
| Generates a monotonic time stamp. More... | |
| static void | chVTResetTimeStamp (void) |
| Resets and re-synchronizes the time stamps monotonic counter. More... | |
| static void | __vt_object_init (virtual_timers_list_t *vtlp) |
| Virtual Timers instance initialization. More... | |
|
static |
Inserts a timer as first element in a delta list.
Definition at line 56 of file chvt.c.
References ch_dlist_insert_after(), ch_virtual_timer::dlist, ch_virtual_timers_list::dlist, and ch_virtual_timers_list::lasttime.
Referenced by vt_enqueue().

|
static |
Enqueues a virtual timer in a virtual timers list.
Definition at line 90 of file chvt.c.
References ch_dlist_isempty(), chTimeDiffX, ch_virtual_timers_list::dlist, ch_virtual_timers_list::lasttime, and vt_insert_first().

| void chVTDoSetI | ( | virtual_timer_t * | vtp, |
| sysinterval_t | delay, | ||
| vtfunc_t | vtfunc, | ||
| void * | par | ||
| ) |
Enables a one-shot virtual timer.
The timer is enabled and programmed to trigger after the delay specified as parameter.
| [out] | vtp | the virtual_timer_t structure pointer |
| [in] | delay | the number of ticks before the operation timeouts, the special values are handled as follow:
|
| [in] | vtfunc | the timer callback function. After invoking the callback the timer is disabled and the structure can be disposed or reused. |
| [in] | par | a parameter that will be passed to the callback function |
Definition at line 179 of file chvt.c.
References currcore.
Referenced by chVTSetI().
| void chVTDoSetContinuousI | ( | virtual_timer_t * | vtp, |
| sysinterval_t | delay, | ||
| vtfunc_t | vtfunc, | ||
| void * | par | ||
| ) |
Enables a continuous virtual timer.
The timer is enabled and programmed to trigger after the delay specified as parameter.
| [out] | vtp | the virtual_timer_t structure pointer |
| [in] | delay | the number of ticks before the operation timeouts, the special values are handled as follow:
|
| [in] | vtfunc | the timer callback function. After invoking the callback the timer is disabled and the structure can be disposed or reused. |
| [in] | par | a parameter that will be passed to the callback function |
Definition at line 217 of file chvt.c.
References currcore.
Referenced by chVTSetContinuousI().
| void chVTDoResetI | ( | virtual_timer_t * | vtp | ) |
Disables a Virtual Timer.
| [in] | vtp | the virtual_timer_t structure pointer |
Definition at line 241 of file chvt.c.
References currcore.
Referenced by chVTResetI().
| sysinterval_t chVTGetRemainingIntervalI | ( | virtual_timer_t * | vtp | ) |
Returns the remaining time interval before next timer trigger.
| [in] | vtp | the virtual_timer_t structure pointer |
Definition at line 337 of file chvt.c.
References currcore.
| void chVTDoTickI | ( | void | ) |
Virtual timers ticker.
Definition at line 377 of file chvt.c.
References currcore.
| systimestamp_t chVTGetTimeStampI | ( | void | ) |
Generates a monotonic time stamp.
This function generates a monotonic time stamp synchronized with the system time. The time stamp has the same resolution of system time.
Definition at line 562 of file chvt.c.
References currcore.
Referenced by chVTGetTimeStamp().
| void chVTResetTimeStampI | ( | void | ) |
|
inlinestatic |
Initializes a virtual_timer_t object.
chVTSetI() initializes the object too. This function is only useful if you need to perform a chVTIsArmed() check before calling chVTSetI().| [out] | vtp | the virtual_timer_t structure pointer |
Definition at line 104 of file chvt.h.
References ch_virtual_timer::dlist, and ch_delta_list::next.
|
inlinestatic |
Current system time.
Returns the number of system ticks since the chSysInit() invocation.
systime_t size.Definition at line 122 of file chvt.h.
References currcore.
Referenced by __vt_object_init(), chVTGetSystemTime(), chVTIsSystemTimeWithinX(), and chVTTimeElapsedSinceX().
|
inlinestatic |
Current system time.
Returns the number of system ticks since the chSysInit() invocation.
Definition at line 141 of file chvt.h.
References chSysLock, chSysUnlock, and chVTGetSystemTimeX().
Referenced by chVTIsSystemTimeWithin().

|
inlinestatic |
Returns the elapsed time since the specified start time.
| [in] | start | start time |
Definition at line 159 of file chvt.h.
References chTimeDiffX, and chVTGetSystemTimeX().

Checks if the current system time is within the specified time window.
| [in] | start | the start of the time window (inclusive) |
| [in] | end | the end of the time window (non inclusive) |
| true | current time within the specified time window. |
| false | current time not within the specified time window. |
Definition at line 177 of file chvt.h.
References chTimeIsInRangeX(), and chVTGetSystemTimeX().

Checks if the current system time is within the specified time window.
| [in] | start | the start of the time window (inclusive) |
| [in] | end | the end of the time window (non inclusive) |
| true | current time within the specified time window. |
| false | current time not within the specified time window. |
Definition at line 195 of file chvt.h.
References chTimeIsInRangeX(), and chVTGetSystemTime().

|
inlinestatic |
Returns the time interval until the next timer event.
CH_CFG_ST_TIMEDELTA ticks. | [out] | timep | pointer to a variable that will contain the time interval until the next timer elapses. This pointer can be NULL if the information is not required. |
| false | if the timers list is empty. |
| true | if the timers list contains at least one timer. |
Definition at line 216 of file chvt.h.
References currcore, and ch_virtual_timers_list::dlist.
|
inlinestatic |
Returns true if the specified timer is armed.
chVTObjectInit() or chVTDoSetI().| [in] | vtp | the virtual_timer_t structure pointer |
Definition at line 248 of file chvt.h.
Referenced by chVTIsArmed(), and chVTResetI().
|
inlinestatic |
Returns true if the specified timer is armed.
chVTObjectInit() or chVTDoSetI().| [in] | vtp | the virtual_timer_t structure pointer |
Definition at line 265 of file chvt.h.
References chSysLock, chSysUnlock, and chVTIsArmedI().

|
inlinestatic |
Disables a Virtual Timer.
chVTObjectInit() or chVTDoSetI().| [in] | vtp | the virtual_timer_t structure pointer |
Definition at line 285 of file chvt.h.
References chVTDoResetI(), and chVTIsArmedI().
Referenced by chVTReset(), chVTSetContinuousI(), and chVTSetI().

|
inlinestatic |
Disables a Virtual Timer.
chVTObjectInit() or chVTDoSetI().| [in] | vtp | the virtual_timer_t structure pointer |
Definition at line 302 of file chvt.h.
References chSysLock, chSysUnlock, and chVTResetI().

|
inlinestatic |
Enables a one-shot virtual timer.
If the virtual timer was already enabled then it is re-enabled using the new parameters.
chVTObjectInit() or chVTDoSetI().| [in] | vtp | the virtual_timer_t structure pointer |
| [in] | delay | the number of ticks before the operation timeouts, the special values are handled as follow:
|
| [in] | vtfunc | the timer callback function. After invoking the callback the timer is disabled and the structure can be disposed or reused. |
| [in] | par | a parameter that will be passed to the callback function |
Definition at line 331 of file chvt.h.
References chVTDoSetI(), and chVTResetI().
Referenced by chVTSet().

|
inlinestatic |
Enables a one-shot virtual timer.
If the virtual timer was already enabled then it is re-enabled using the new parameters.
chVTObjectInit() or chVTDoSetI().| [in] | vtp | the virtual_timer_t structure pointer |
| [in] | delay | the number of ticks before the operation timeouts, the special values are handled as follow:
|
| [in] | vtfunc | the timer callback function. After invoking the callback the timer is disabled and the structure can be disposed or reused. |
| [in] | par | a parameter that will be passed to the callback function |
Definition at line 360 of file chvt.h.
References chSysLock, chSysUnlock, and chVTSetI().

|
inlinestatic |
Enables a continuous virtual timer.
If the virtual timer was already enabled then it is re-enabled using the new parameters.
chVTObjectInit() or chVTDoSetI().| [in] | vtp | the virtual_timer_t structure pointer |
| [in] | delay | the number of ticks before the operation timeouts, the special values are handled as follow:
|
| [in] | vtfunc | the timer callback function. After invoking the callback the timer is disabled and the structure can be disposed or reused. |
| [in] | par | a parameter that will be passed to the callback function |
Definition at line 390 of file chvt.h.
References chVTDoSetContinuousI(), and chVTResetI().
Referenced by chVTSetContinuous().

|
inlinestatic |
Enables a continuous virtual timer.
If the virtual timer was already enabled then it is re-enabled using the new parameters.
chVTObjectInit() or chVTDoSetI().| [in] | vtp | the virtual_timer_t structure pointer |
| [in] | delay | the number of ticks before the operation timeouts, the special values are handled as follow:
|
| [in] | vtfunc | the timer callback function. After invoking the callback the timer is disabled and the structure can be disposed or reused. |
| [in] | par | a parameter that will be passed to the callback function |
Definition at line 419 of file chvt.h.
References chSysLock, chSysUnlock, and chVTSetContinuousI().

|
inlinestatic |
Returns the current reload value.
| [in] | vtp | the virtual_timer_t structure pointer |
Definition at line 435 of file chvt.h.
References ch_virtual_timer::reload.
|
inlinestatic |
Changes a timer reload time interval.
| [in] | vtp | the virtual_timer_t structure pointer |
| [in] | reload | the new reload value, zero means no reload |
Definition at line 452 of file chvt.h.
References ch_virtual_timer::reload.
|
inlinestatic |
Generates a monotonic time stamp.
This function generates a monotonic time stamp synchronized with the system time. The time stamp has the same resolution of system time.
Definition at line 474 of file chvt.h.
References chSysLock, chSysUnlock, and chVTGetTimeStampI().

|
inlinestatic |
|
inlinestatic |
Virtual Timers instance initialization.
| [out] | vtlp | pointer to the virtual_timers_list_t structure |
Definition at line 511 of file chvt.h.
References ch_dlist_init(), chVTGetSystemTimeX(), ch_virtual_timers_list::dlist, ch_virtual_timers_list::laststamp, ch_virtual_timers_list::lasttime, and ch_virtual_timers_list::systime.
Referenced by chInstanceObjectInit().
