|
STC15W408AS library 0.17.0
|
Functions | |
| uint32_t | timer_ticks_to_Hz (uint16_t ticks, timer_clock_divider_t timer_clock_divider, uint16_t frequency_divider_scale) |
| Converts ticks to timer frequency. | |
| uint16_t | timer_Hz_to_ticks (uint32_t frequency, timer_clock_divider_t timer_clock_divider, uint8_t frequency_divider_scale) |
| Converts given timer overflow frequency to ticks. | |
| uint8_t | timer_Hz_to_ticks_8bit (uint32_t frequency, timer_clock_divider_t timer_clock_divider, uint8_t frequency_divider_scale) |
| Converts given timer overflow frequency to ticks for 8bit timer mode. | |
| uint16_t | timer_16bit_ticks_to_ms (uint16_t ticks, timer_clock_divider_t timer_divider, uint8_t frequency_divider_scale) |
| Converts 16-bit mode timer ticks count to ms. | |
| uint16_t | timer_8bit_ticks_to_mcs (uint8_t ticks, timer_clock_divider_t timer_divider, uint8_t frequency_divider_scale) |
| Converts 8-bit mode timer ticks count to microseconds. | |
| uint16_t | timer_ms_to_ticks (uint16_t ms, timer_clock_divider_t divider, uint8_t frequency_divider_scale) |
| Converts milliseconds to 16-bit timer ticks. | |
Functions and data structures for converting timer ticks to frequency and times for timers.
| uint16_t timer_16bit_ticks_to_ms | ( | uint16_t | ticks, |
| timer_clock_divider_t | timer_divider, | ||
| uint8_t | frequency_divider_scale | ||
| ) |
Converts 16-bit mode timer ticks count to ms.
| ticks | uint16_t ticks count. Range 7...65535 |
| timer_divider | timer_clock_divider_t 1T or 12T timer clock divider |
| frequency_divider_scale | uint8_t MCU frequency divider scale 0..7 |
| uint16_t timer_8bit_ticks_to_mcs | ( | uint8_t | ticks, |
| timer_clock_divider_t | timer_divider, | ||
| uint8_t | frequency_divider_scale | ||
| ) |
Converts 8-bit mode timer ticks count to microseconds.
| ticks | uint8_t ticks count. |
| timer_divider | timer_clock_divider_t 1T or 12T timer clock divider |
| frequency_divider_scale | uint8_t MCU frequency divider scale 0..7 |
| uint16_t timer_Hz_to_ticks | ( | uint32_t | frequency, |
| timer_clock_divider_t | timer_clock_divider, | ||
| uint8_t | frequency_divider_scale | ||
| ) |
Converts given timer overflow frequency to ticks.
Frequency to ticks is a reverse operation of ticks to frequency,
Not all frequency ranges can be correctly coverted to ticks. If ticks count for frequency is greater than UINT16_MAX then return 0.
| frequency | uint32_t frequency |
| timer_clock_divider | timer_clock_divider_t enum T12 or T1 timer clock divider |
| frequency_divider_scale | uint8_t mcu clock frequency diviver scale in range of [0..7] |
| uint8_t timer_Hz_to_ticks_8bit | ( | uint32_t | frequency, |
| timer_clock_divider_t | timer_clock_divider, | ||
| uint8_t | frequency_divider_scale | ||
| ) |
Converts given timer overflow frequency to ticks for 8bit timer mode.
Frequency to ticks is a reverse operation of ticks to frequency,
Not all frequency ranges can be correctly coverted to ticks. If ticks count for frequency is greater than UINT8_MAX then return 0.
| frequency | uint32_t frequency |
| timer_clock_divider | timer_clock_divider_t enum T12 or T1 timer clock divider |
| frequency_divider_scale | uint8_t mcu clock frequency diviver scale in range of [0..7] |
| uint16_t timer_ms_to_ticks | ( | uint16_t | ms, |
| timer_clock_divider_t | divider, | ||
| uint8_t | frequency_divider_scale | ||
| ) |
Converts milliseconds to 16-bit timer ticks.
This function converts a given time duration in milliseconds to the corresponding 16-bit timer reload/tick count based on the MCU's clock frequency, timer clock divider (T1 or T12), and the system frequency divider scale. The calculation assumes:
The formula used: ticks = ms × (MCU_frequency / 1000) / timer_clock_divider where:
| ms | uint16_t Time duration in milliseconds [1..~9000 depending on clock] |
| divider | timer_clock_divider_t Clock divider for the timer: T1 (1T mode) or T12 (12T mode) |
| frequency_divider_scale | uint8_t System clock divider scale (0..7), used as shift right amount on MAIN_Fosc |
| uint32_t timer_ticks_to_Hz | ( | uint16_t | ticks, |
| timer_clock_divider_t | timer_clock_divider, | ||
| uint16_t | frequency_divider_scale | ||
| ) |
Converts ticks to timer frequency.
The output frequency = (SYSclk/timer_clock_divider)/(1 + ticks).
uint16 ticks used in timer mode 0, 1, 3. For timer mode2 (8 bit autoreladable timer) ticks can be in 0..255 range.
| ticks | uint16_t timer ticks count to covert |
| timer_clock_divider | uint8_t timer clock divider T12 or T1 |
| frequency_divider_scale | uint8_t mcu frequency divider scale 0..7 |