samd20 21 配置pwm 改变频率 占空比

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]

}


改变占空比可以调用 tc_set_compare_value函数

改变频率修改 clock_prescaler 以及 调用 tc_set_top_value 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值