24.8.2.1.3 Workflow
- Create a module software instance structure for the TC module to store the TC driver state while it is in use.
structtc_module tc_instance;Note: This should never go out of scope as long as the module is in use. In most cases, this should be global. - Configure the TC module.
- Create a TC module configuration struct, which can be filled out to adjust the configuration of a physical TC peripheral.
structtc_config config_tc; - Initialize the TC configuration struct with the module's default values.
tc_get_config_defaults(&config_tc);Note: This should always be performed before using the configuration struct to ensure that all values are initialized to known default settings. - Alter the TC settings to configure the counter width, wave generation mode, and the compare channel 0 value.
config_tc.counter_size = TC_COUNTER_SIZE_16BIT;config_tc.wave_generation = TC_WAVE_GENERATION_MATCH_FREQ;config_tc.counter_16_bit.compare_capture_channel[0] = 4000; - Alter the TC settings to configure the match frequency output on a physical device pin.
config_tc.pwm_channel[0].enabled =true;config_tc.pwm_channel[0].pin_out = PWM_OUT_PIN;config_tc.pwm_channel[0].pin_mux = PWM_OUT_MUX; - Configure the TC module with the desired settings.
tc_init(&tc_instance, PWM_MODULE, &config_tc); - Enable the TC module to start the timer and begin match frequency wave generation.
tc_enable(&tc_instance);
