COTmrGetTicks()

This function calculates the number of required timer ticks for a given time interval.

Description

This function is used within the CANopen stack for calculating timeouts, event times and other needed time intervals.

Prototype

int32_t COTmrGetTicks(CO_TMR   *tmr,
uint16_t  time,
uint32_t  unit);


Arguments

Parameter Description
tmr pointer to timer object
time time interval as value of given units
unit unit of given time (CO_TMR_UNIT_1MS or CO_TMR_UNIT_100US)

Returned Value

• >0 : timer ticks for given time interval
• =0 : given time interval is not possible with the used timer

Example

The following example calculates the number of ticks for 10.7ms and for 2.5s.

    CO_TMR  *tmr;
uint32_t tick_10_7ms;
uint32_t tick_2500ms;
:
tmr = &AppNode.Tmr;
:
tick_10_7ms = COTmrGetTicks(tmr, 107, CO_TMR_UNIT_100US);
if (tick_10_7ms == 0) {
/* time interval 10.7ms is not possible */
} else {
/* you can use the time interval 10.7ms */
}
:
tick_2500ms = COTmrGetTicks(tmr, 2500, CO_TMR_UNIT_1MS);
if (tick_2500ms == 0) {
/* time interval 2.5s is not possible */
} else {
/* you can use the time interval 2.5s */
}
:


Note: The example assumes that the CANopen node is already initialized with CONodeInit(), because the specified frequency in the specification structure is the foundation for these calculations.