
资深技术员

- 积分
- 321
- 在线时间
- 64 小时
- 精华
- 0
- 注册时间
- 2018-3-5
- 最后登录
- 2019-12-10
|
通道配置切换时,需要注意各通道切换的一致性,在同一时刻生效,避免中间的时间差带来风险,所以可以采用直接写CHCTL2寄存器的方式、或者开启通道影子寄存器,配置好各通道后用软件换向事件让配置生效。如以下代码:
#ifdef REGISTER
temp =TIMER_CHCTL2(TIMER0);
temp|=TIMER_CHCTL2_CH0EN|TIMER_CHCTL2_CH2NEN;
temp&=~(TIMER_CHCTL2_CH0NEN|TIMER_CHCTL2_CH1EN|TIMER_CHCTL2_CH1NEN|TIMER_CHCTL2_CH2EN);
TIMER_CHCTL2(TIMER0)=temp;
#else
timer_channel_output_state_config(TIMER0,TIMER_CH_0,TIMER_CCX_ENABLE);
timer_channel_output_state_config(TIMER0,TIMER_CH_1,TIMER_CCX_DISABLE);
timer_channel_output_state_config(TIMER0,TIMER_CH_2,TIMER_CCX_DISABLE);
timer_channel_complementary_output_state_config(TIMER0, TIMER_CH_0, TIMER_CCXN_DISABLE);
timer_channel_complementary_output_state_config(TIMER0, TIMER_CH_1, TIMER_CCXN_DISABLE);
timer_channel_complementary_output_state_config(TIMER0, TIMER_CH_2, TIMER_CCXN_ENABLE);
timer_event_software_generate(BLDC_PWM_TIMER, TIMER_EVENT_SRC_CMTG);
#endif
|
|