#include <avr32/io.h>
Data Structures | |
struct | tc_capture_opt_t |
Parameters when initializing a timer/counter in capture mode. More... | |
struct | tc_interrupt_t |
Timer/counter interrupts. More... | |
struct | tc_waveform_opt_t |
Parameters when initializing a timer/counter in waveform mode. More... | |
Macros | |
#define | TC_INVALID_ARGUMENT (-1) |
TC driver functions return value in case of invalid argument(s). More... | |
#define | TC_NUMBER_OF_CHANNELS (sizeof(((avr32_tc_t *)0)->channel) / sizeof(avr32_tc_channel_t)) |
Number of timer/counter channels. More... | |
External Clock Signal 0 Selection | |
#define | TC_CH0_EXT_CLK0_SRC_TCLK0 AVR32_TC_TC0XC0S_TCLK0 |
#define | TC_CH0_EXT_CLK0_SRC_NO_CLK AVR32_TC_TC0XC0S_NO_CLK |
#define | TC_CH0_EXT_CLK0_SRC_TIOA1 AVR32_TC_TC0XC0S_TIOA1 |
#define | TC_CH0_EXT_CLK0_SRC_TIOA2 AVR32_TC_TC0XC0S_TIOA2 |
External Clock Signal 1 Selection | |
#define | TC_CH1_EXT_CLK1_SRC_TCLK1 AVR32_TC_TC1XC1S_TCLK1 |
#define | TC_CH1_EXT_CLK1_SRC_NO_CLK AVR32_TC_TC1XC1S_NO_CLK |
#define | TC_CH1_EXT_CLK1_SRC_TIOA0 AVR32_TC_TC1XC1S_TIOA0 |
#define | TC_CH1_EXT_CLK1_SRC_TIOA2 AVR32_TC_TC1XC1S_TIOA2 |
External Clock Signal 2 Selection | |
#define | TC_CH2_EXT_CLK2_SRC_TCLK2 AVR32_TC_TC2XC2S_TCLK2 |
#define | TC_CH2_EXT_CLK2_SRC_NO_CLK AVR32_TC_TC2XC2S_NO_CLK |
#define | TC_CH2_EXT_CLK2_SRC_TIOA0 AVR32_TC_TC2XC2S_TIOA0 |
#define | TC_CH2_EXT_CLK2_SRC_TIOA1 AVR32_TC_TC2XC2S_TIOA1 |
Event/Trigger Actions on Output | |
#define | TC_EVT_EFFECT_NOOP AVR32_TC_NONE |
#define | TC_EVT_EFFECT_SET AVR32_TC_SET |
#define | TC_EVT_EFFECT_CLEAR AVR32_TC_CLEAR |
#define | TC_EVT_EFFECT_TOGGLE AVR32_TC_TOGGLE |
RC Compare Trigger Enable | |
#define | TC_NO_TRIGGER_COMPARE_RC 0 |
#define | TC_TRIGGER_COMPARE_RC 1 |
Waveform Selection | |
#define | TC_WAVEFORM_SEL_UP_MODE AVR32_TC_WAVSEL_UP_NO_AUTO |
#define | TC_WAVEFORM_SEL_UP_MODE_RC_TRIGGER AVR32_TC_WAVSEL_UP_AUTO |
#define | TC_WAVEFORM_SEL_UPDOWN_MODE AVR32_TC_WAVSEL_UPDOWN_NO_AUTO |
#define | TC_WAVEFORM_SEL_UPDOWN_MODE_RC_TRIGGER AVR32_TC_WAVSEL_UPDOWN_AUTO |
TIOA or TIOB External Trigger Selection | |
#define | TC_EXT_TRIG_SEL_TIOA 1 |
#define | TC_EXT_TRIG_SEL_TIOB 0 |
External Event Selection | |
| |
#define | TC_EXT_EVENT_SEL_TIOB_INPUT AVR32_TC_EEVT_TIOB_INPUT |
#define | TC_EXT_EVENT_SEL_XC0_OUTPUT AVR32_TC_EEVT_XC0_OUTPUT |
#define | TC_EXT_EVENT_SEL_XC1_OUTPUT AVR32_TC_EEVT_XC1_OUTPUT |
#define | TC_EXT_EVENT_SEL_XC2_OUTPUT AVR32_TC_EEVT_XC2_OUTPUT |
Edge Selection | |
#define | TC_SEL_NO_EDGE AVR32_TC_EEVTEDG_NO_EDGE |
#define | TC_SEL_RISING_EDGE AVR32_TC_EEVTEDG_POS_EDGE |
#define | TC_SEL_FALLING_EDGE AVR32_TC_EEVTEDG_NEG_EDGE |
#define | TC_SEL_EACH_EDGE AVR32_TC_EEVTEDG_BOTH_EDGES |
Burst Signal Selection | |
#define | TC_BURST_NOT_GATED AVR32_TC_BURST_NOT_GATED |
#define | TC_BURST_CLK_AND_XC0 AVR32_TC_BURST_CLK_AND_XC0 |
#define | TC_BURST_CLK_AND_XC1 AVR32_TC_BURST_CLK_AND_XC1 |
#define | TC_BURST_CLK_AND_XC2 AVR32_TC_BURST_CLK_AND_XC2 |
Clock Invert | |
#define | TC_CLOCK_RISING_EDGE 0 |
#define | TC_CLOCK_FALLING_EDGE 1 |
Clock Selection | |
#define | TC_CLOCK_SOURCE_TC1 AVR32_TC_TCCLKS_TIMER_CLOCK1 |
#define | TC_CLOCK_SOURCE_TC2 AVR32_TC_TCCLKS_TIMER_CLOCK2 |
#define | TC_CLOCK_SOURCE_TC3 AVR32_TC_TCCLKS_TIMER_CLOCK3 |
#define | TC_CLOCK_SOURCE_TC4 AVR32_TC_TCCLKS_TIMER_CLOCK4 |
#define | TC_CLOCK_SOURCE_TC5 AVR32_TC_TCCLKS_TIMER_CLOCK5 |
#define | TC_CLOCK_SOURCE_XC0 AVR32_TC_TCCLKS_XC0 |
#define | TC_CLOCK_SOURCE_XC1 AVR32_TC_TCCLKS_XC1 |
#define | TC_CLOCK_SOURCE_XC2 AVR32_TC_TCCLKS_XC2 |
Functions | |
int | tc_configure_interrupts (volatile avr32_tc_t *tc, unsigned int channel, const tc_interrupt_t *bitfield) |
Enables various timer/counter interrupts. More... | |
int | tc_get_interrupt_settings (volatile avr32_tc_t *tc, unsigned int channel) |
Reads timer/counter interrupt settings. More... | |
int | tc_init_capture (volatile avr32_tc_t *tc, const tc_capture_opt_t *opt) |
Sets options for timer/counter capture initialization. More... | |
int | tc_init_waveform (volatile avr32_tc_t *tc, const tc_waveform_opt_t *opt) |
Sets options for timer/counter waveform initialization. More... | |
int | tc_read_ra (volatile avr32_tc_t *tc, unsigned int channel) |
Reads the channel's RA register and returns the value. More... | |
int | tc_read_rb (volatile avr32_tc_t *tc, unsigned int channel) |
Reads the channel's RB register and returns the value. More... | |
int | tc_read_rc (volatile avr32_tc_t *tc, unsigned int channel) |
Reads the channel's RC register and returns the value. More... | |
int | tc_read_sr (volatile avr32_tc_t *tc, unsigned int channel) |
Reads the status register. More... | |
int | tc_read_tc (volatile avr32_tc_t *tc, unsigned int channel) |
Reads the channel's TC counter and returns the value. More... | |
int | tc_select_external_clock (volatile avr32_tc_t *tc, unsigned int channel, unsigned int ext_clk_sig_src) |
Selects which external clock to use and how to configure it. More... | |
int | tc_software_trigger (volatile avr32_tc_t *tc, unsigned int channel) |
Performs a software trigger: the counter is reset and the clock is started. More... | |
int | tc_start (volatile avr32_tc_t *tc, unsigned int channel) |
Starts a timer/counter. More... | |
int | tc_stop (volatile avr32_tc_t *tc, unsigned int channel) |
Stops a timer/counter. More... | |
void | tc_sync_start (volatile avr32_tc_t *tc) |
Start all TC channels simultaneously. More... | |
void | tc_sync_trigger (volatile avr32_tc_t *tc) |
Asserts a SYNC signal to generate a software trigger and reset all channels. More... | |
int | tc_write_ra (volatile avr32_tc_t *tc, unsigned int channel, unsigned short value) |
Writes a value to the channel's RA register. More... | |
int | tc_write_rb (volatile avr32_tc_t *tc, unsigned int channel, unsigned short value) |
Writes a value to the channel's RB register. More... | |
int | tc_write_rc (volatile avr32_tc_t *tc, unsigned int channel, unsigned short value) |
Writes a value to the channel's RC register. More... | |