static void configure_tc(void)
{
//! [setup_config]
struct tc_config config_tc;
//! [setup_config]
//! [setup_config_defaults]
tc_get_config_defaults(&config_tc);
config_tc.clock_prescaler = TC_CLOCK_PRESCALER_DIV4;
//! [setup_config_defaults]
//! [setup_change_config]
//config_tc.counter_size = TC_COUNTER_SIZE_16BIT;
//config_tc.wave_generation = TC_WAVE_GENERATION_NORMAL_PWM;
//config_tc.counter_16_bit.compare_capture_channel[0] = 1000;
config_tc.counter_size = TC_COUNTER_SIZE_8BIT;
config_tc.wave_generation = TC_WAVE_GENERATION_NORMAL_PWM;
config_tc.counter_8_bit.period = 10;
config_tc.counter_8_bit.compare_capture_channel[0] = 100;
//! [setup_change_config]
//! [setup_change_config_pwm]
config_tc.pwm_channel[0].enabled = true;
config_tc.pwm_channel[0].pin_out = PIN_PB10F_TC5_WO0;
config_tc.pwm_channel[0].pin_mux = MUX_PB10F_TC5_WO0;
//! [setup_change_config_pwm]
//! [setup_set_config]
tc_init(&tc_instance, TC5, &config_tc);
//! [setup_set_config]
tc_set_top_value (&tc_instance, 200);
//tc_set_compare_value(&tc_instance, TC_COMPARE_CAPTURE_CHANNEL_0, 10);
//! [setup_enable]
tc_enable(&tc_instance);
//! [setup_enable]
{
//! [setup_config]
struct tc_config config_tc;
//! [setup_config]
//! [setup_config_defaults]
tc_get_config_defaults(&config_tc);
config_tc.clock_prescaler = TC_CLOCK_PRESCALER_DIV4;
//! [setup_config_defaults]
//! [setup_change_config]
//config_tc.counter_size = TC_COUNTER_SIZE_16BIT;
//config_tc.wave_generation = TC_WAVE_GENERATION_NORMAL_PWM;
//config_tc.counter_16_bit.compare_capture_channel[0] = 1000;
config_tc.counter_size = TC_COUNTER_SIZE_8BIT;
config_tc.wave_generation = TC_WAVE_GENERATION_NORMAL_PWM;
config_tc.counter_8_bit.period = 10;
config_tc.counter_8_bit.compare_capture_channel[0] = 100;
//! [setup_change_config]
//! [setup_change_config_pwm]
config_tc.pwm_channel[0].enabled = true;
config_tc.pwm_channel[0].pin_out = PIN_PB10F_TC5_WO0;
config_tc.pwm_channel[0].pin_mux = MUX_PB10F_TC5_WO0;
//! [setup_change_config_pwm]
//! [setup_set_config]
tc_init(&tc_instance, TC5, &config_tc);
//! [setup_set_config]
tc_set_top_value (&tc_instance, 200);
//tc_set_compare_value(&tc_instance, TC_COMPARE_CAPTURE_CHANNEL_0, 10);
//! [setup_enable]
tc_enable(&tc_instance);
//! [setup_enable]
}
改变占空比可以调用 tc_set_compare_value函数
改变频率修改 clock_prescaler 以及 调用 tc_set_top_value