STC15W408AS library 0.13.0
Loading...
Searching...
No Matches
Timer2 Aux

tick to frequency conversions

Timer ticks to overlow frequency and vice versa convertions

#define timer2_uint16_ticks_to_freq100(ticks)   (timer_uint16_ticks_to_freq100(ticks, get_timer2_clock_divider(), get_frequency_divider_scale()))
 Convert ticks to timer frequency for timer2 multiplied by 100.
 
#define timer2_frequency_to_ticks_unsafe(frequency)   (timer_frequency_to_ticks_unsafe(frequency, get_timer2_clock_divider(), get_frequency_divider_scale()))
 Unsafe approximation timer2 frequency corresponding to ticks.
 
#define timer2_ticks_to_ms_usafe(ticks)   (timer_ticks_to_ms_usafe(ticks, get_timer2_clock_divider(), get_frequency_divider_scale()))
 Convert ticks count to ms.
 
#define timer2_ms_to_ticks_usafe(ms)   (timer_ms_to_ticks_usafe(ms, get_timer2_clock_divider()))
 Convert milliseconds to timer2 ticks.
 

Detailed Description

Functions and data structures for converting timer ticks to frequency and times for timer2.

Author
Michael Golovanov

Macro Definition Documentation

◆ timer2_frequency_to_ticks_unsafe

#define timer2_frequency_to_ticks_unsafe (   frequency)    (timer_frequency_to_ticks_unsafe(frequency, get_timer2_clock_divider(), get_frequency_divider_scale()))

Unsafe approximation timer2 frequency corresponding to ticks.

ticks = get_master_clock_frequency() / (2 * get_timer2_clock_divider() * frequency))

Call this method after timer2 is initialized and MCU clock frequency divider scale is set.

This method doesnt analyze corner cases and overflow of result. Be careful.

Parameters
frequencyuint32_t frequency value in Hz. Should not be 0;
Returns
uint16_t timer0 ticks corresponding to frequency value

◆ timer2_ms_to_ticks_usafe

#define timer2_ms_to_ticks_usafe (   ms)    (timer_ms_to_ticks_usafe(ms, get_timer2_clock_divider()))

Convert milliseconds to timer2 ticks.

1 ms = ((get_master_clock_frequency_high_part() + 26) >> get_frequency_divider_scale()) / timer_clock_divider

This routine doesnt check overflows. Its unsafe.

Parameters
msuint16_t ms to convert
Returns
uint16_t ticks count for milliseconds

◆ timer2_ticks_to_ms_usafe

#define timer2_ticks_to_ms_usafe (   ticks)    (timer_ticks_to_ms_usafe(ticks, get_timer2_clock_divider(), get_frequency_divider_scale()))

Convert ticks count to ms.

This method doesnt analyze corner cases and overflow of result. Be careful.

Parameters
ticksuint16_t ticks count
Returns
milliseconds time corresponing to timer ticks

◆ timer2_uint16_ticks_to_freq100

#define timer2_uint16_ticks_to_freq100 (   ticks)    (timer_uint16_ticks_to_freq100(ticks, get_timer2_clock_divider(), get_frequency_divider_scale()))

Convert ticks to timer frequency for timer2 multiplied by 100.

The output frequency = (SYSclk/timer_clock_divider)/((65536-ticks) * 2). Multiplication by 100 is used for get frequency value without using float numbers.

Call this method after timer2 is initialized and MCU clock frequency divider scale is set.

Parameters
ticksuint16_t timer ticks count to covert
Returns
uint32_t frequency multiplied by 100 corresponding to ticks count