[MSP432] P5.6 TIMER_A2 hgih 频率 PWM 生成。
您好!
我必须 通过 P5.6在1Hz 至3MHz 范围内生成各种 PWM 频率、但我无法生成超过24kHz 的频率。
请查看以下设置值、并为我提供一种在 P5.6上生成高频 PWM 的方法。
SMCLK 设置:
MAP_CS_initClockSignal (CS_SMCLK、CS_DCOCLK_SELECT、CS_Clock_divider _1);
定时器控制: tassel= SMCLK,ID = 0,EX=0。
…
{
PWM_Disable_P5P6_7 (_pin);
Timer_A2->CCR[0]=_PERIOD; // PWM 周期/2
switch (_pin){
情况6:/*将 GPIO2.6配置为 PWM 的外设输出*/
Timer_A2->CCTL[1]= TIMER_A_CCTLN_OUTMOD_6;// CCR3切换/置位
Timer_A2->CCR[1]=占空比; // CCR3 PWM 占空比
Timer_A2->CCR[2]=_Duty; // CCR4 PWM 占空比
中断;
情况7:/*将 GPIO2.7配置为 PWM 的外设输出*/
Timer_A2->CCTL[2]= TIMER_A_CCTLN_OUTMOD_6;// CCR4切换/置位
Timer_A2->CCR[2]=_Duty; // CCR4 PWM 占空比
中断;
}
Timer_A2->Ex0 = ex;
Timer_A2->CTL =((clk & 0x03)<< 8)|//TIMER_A_CTL_tassel_2 | // SMCLK
((id & 0x03)<< 6)|
Timer_A_CTL_MC_3; //向上/向下计数模式
PWM_Enable_P5P6_7 (_Pin);
}
…………
引脚控制
void PWM_Enable_P5P6_7 (int _pin)
{
switch (_pin){
情况6:/*将 GPIO5.6配置为 PWM 的外设输出*/
P5->DIR |= BIT6; // P5.6 -输出
P5->SEL0 |= BIT6; // P5.6 -端口映射功能
P5->SEL1 &=~(BIT6); // P5.6 -默认 PM 函数= TimerA CCRx
中断;
情况7:/*将 GPIO5.7配置为 PWM 的外设输出*/
P5->DIR |= BIT7; // P5.7 -输出
P5->SEL0 |= BIT7; // P5.7 -端口映射功能
P5->SEL1 &=~(BIT7); // P5.7 -默认 PM 函数= TimerA CCRx
中断;
}
}