#include "../chip.h"
#include <stdint.h>
Go to the source code of this file.
|
void | TC_Configure (Tc *pTc, uint32_t dwChannel, uint32_t dwMode) |
| Configures a Timer Counter Channel. More...
|
|
void | TC_Start (Tc *pTc, uint32_t dwChannel) |
| Reset and Start the TC Channel. More...
|
|
void | TC_Stop (Tc *pTc, uint32_t dwChannel) |
| Stop TC Channel. More...
|
|
uint32_t | TC_FindMckDivisor (uint32_t dwFreq, uint32_t dwMCk, uint32_t *dwDiv, uint32_t *dwTcClks, uint32_t dwBoardMCK) |
| Find best MCK divisor. More...
|
|
uint32_t | TC_ReadCV (Tc *p_tc, uint32_t ul_channel) |
| Read Timer Counter Counter Value on the selected TC & channel. More...
|
|
uint32_t | TC_GetStatus (Tc *p_tc, uint32_t ul_channel) |
| Get current status on the selected channel. More...
|
|
void | TC_SetRA (Tc *tc, uint32_t chan, uint32_t v) |
| Set RA on the selected channel. More...
|
|
void | TC_SetRB (Tc *tc, uint32_t chan, uint32_t v) |
| Set RB on the selected channel. More...
|
|
void | TC_SetRC (Tc *tc, uint32_t chan, uint32_t v) |
| Set RC on the selected channel. More...
|
|
Purpose
Interface for configuring and using Timer Counter (TC) peripherals.
Usage
- Optionally, use TC_FindMckDivisor() to let the program find the best TCCLKS field value automatically.
- Configure a Timer Counter in the desired mode using TC_Configure().
- Start or stop the timer clock using TC_Start() and TC_Stop().
void TC_Configure |
( |
Tc * |
pTc, |
|
|
uint32_t |
dwChannel, |
|
|
uint32_t |
dwMode |
|
) |
| |
Configures a Timer Counter Channel.
Configures a Timer Counter to operate in the given mode. Timer is stopped after configuration and must be restarted with TC_Start(). All the interrupts of the timer are also disabled.
- Parameters
-
pTc | Pointer to a Tc instance. |
channel | Channel number. |
mode | Operating mode (TC_CMR value). |
uint32_t TC_FindMckDivisor |
( |
uint32_t |
dwFreq, |
|
|
uint32_t |
dwMCk, |
|
|
uint32_t * |
dwDiv, |
|
|
uint32_t * |
dwTcClks, |
|
|
uint32_t |
dwBoardMCK |
|
) |
| |
Find best MCK divisor.
Finds the best MCK divisor given the timer frequency and MCK. The result is guaranteed to satisfy the following equation:
1 (MCK / (DIV * 65536)) <= freq <= (MCK / DIV)
with DIV being the highest possible value.
- Parameters
-
dwFreq | Desired timer frequency. |
dwMCk | Master clock frequency. |
dwDiv | Divisor value. |
dwTcClks | TCCLKS field value for divisor. |
dwBoardMCK | Board clock frequency. |
- Returns
- 1 if a proper divisor has been found, otherwise 0.
uint32_t TC_GetStatus |
( |
Tc * |
p_tc, |
|
|
uint32_t |
ul_channel |
|
) |
| |
Get current status on the selected channel.
- Parameters
-
p_tc | Pointer to a TC instance. |
ul_channel | Channel to configure. |
- Returns
- The current TC status.
uint32_t TC_ReadCV |
( |
Tc * |
p_tc, |
|
|
uint32_t |
ul_channel |
|
) |
| |
Read Timer Counter Counter Value on the selected TC & channel.
- Parameters
-
p_tc | Pointer to a TC instance. |
ul_channel | Channel to configure. |
- Returns
- RC value.
void TC_SetRA |
( |
Tc * |
tc, |
|
|
uint32_t |
chan, |
|
|
uint32_t |
v |
|
) |
| |
Set RA on the selected channel.
- Parameters
-
tc | Pointer to a TC instance. |
chan | Channel to configure. |
v | New value for RA. |
void TC_SetRB |
( |
Tc * |
tc, |
|
|
uint32_t |
chan, |
|
|
uint32_t |
v |
|
) |
| |
Set RB on the selected channel.
- Parameters
-
tc | Pointer to a TC instance. |
chan | Channel to configure. |
v | New value for RB. |
void TC_SetRC |
( |
Tc * |
tc, |
|
|
uint32_t |
chan, |
|
|
uint32_t |
v |
|
) |
| |
Set RC on the selected channel.
- Parameters
-
tc | Pointer to a TC instance. |
chan | Channel to configure. |
v | New value for RC. |
void TC_Start |
( |
Tc * |
pTc, |
|
|
uint32_t |
dwChannel |
|
) |
| |
Reset and Start the TC Channel.
Enables the timer clock and performs a software reset to start the counting.
- Parameters
-
pTc | Pointer to a Tc instance. |
dwChannel | Channel number. |
void TC_Stop |
( |
Tc * |
pTc, |
|
|
uint32_t |
dwChannel |
|
) |
| |
Stop TC Channel.
Disables the timer clock, stopping the counting.
- Parameters
-
pTc | Pointer to a Tc instance. |
dwChannel | Channel number. |