关于MSP430产生可调PWM

[复制链接]
2208|15
手机看帖
扫描二维码
随时随地手机跟帖
拉克丝|  楼主 | 2017-12-27 17:39 | 显示全部楼层 |阅读模式
想通过430产生PWM ,用AD采样来实时改变PWM占空比。   
void PWM2(int y)
{
  P2DIR |= BIT4+BIT5;                         // P2.4  2.5  输出
  P2SEL |= BIT4+BIT5;                         // P1.2 and P1.3 options select
  TA2CCR0 = 128;                            // PWM 周期
  TA2CCTL1 = OUTMOD_7;                        // 增计数模式
  TA2CCR1 = y;                                // CCR1 PWM 占空比
  TA2CCTL2 = OUTMOD_3;                        // CCR2 reset/set
  TA2CCR2 = y;                             // CCR2 PWM duty cycle
  TA2CTL = TASSEL_2 + MC_1 + TACLR+ID_3;           // SMCLK, up mode, clear TAR
}

请问调整占空比,是每次都调用PWM2(y)函数还是直接改变  TA2CCR1  TA2CCR2的值,  这个函数需要放在中断里还是只运行一次就行??

相关帖子

lefeng| | 2017-12-27 17:56 | 显示全部楼层
貌似要先暂停PWM输出,才能改变PWM配置寄存器的值吧?  建议好好看下单片机的手册

使用特权

评论回复
dirtwillfly| | 2017-12-27 17:58 | 显示全部楼层

使用特权

评论回复
CaLipton| | 2017-12-27 18:39 | 显示全部楼层
直接覆盖,CCRx写值就行了

使用特权

评论回复
Rospiers| | 2017-12-27 18:49 | 显示全部楼层
要是定时器没记完数呢?    定时器计数的时候中断会停止它吗?

使用特权

评论回复
aspoke| | 2018-1-6 21:33 | 显示全部楼层
直接修改寄存器就行。

使用特权

评论回复
232321122| | 2018-1-6 21:35 | 显示全部楼层
直接写成函数最简单。

使用特权

评论回复
ghuca| | 2018-1-6 21:35 | 显示全部楼层
直接修改 TA2CCR1寄存器。

使用特权

评论回复
soodesyt| | 2018-1-6 21:36 | 显示全部楼层
直接配置PWM功能

使用特权

评论回复
soodesyt| | 2018-1-6 21:37 | 显示全部楼层
这个如果初始化配置之后,直接改变TA2CCR1  TA2CCR2的值

使用特权

评论回复
mnynt121| | 2018-1-6 21:38 | 显示全部楼层
lefeng 发表于 2017-12-27 17:56
貌似要先暂停PWM输出,才能改变PWM配置寄存器的值吧?  建议好好看下单片机的手册 ...

这个PWM不需要停止吧。

使用特权

评论回复
aspoke| | 2018-1-6 21:42 | 显示全部楼层
IO不需要重新配置了。

使用特权

评论回复
232321122| | 2018-1-6 21:42 | 显示全部楼层
最简单就是直接宏定义。

使用特权

评论回复
ghuca| | 2018-1-6 21:42 | 显示全部楼层
TA2CCR2和TA2CCR1 直接赋值。

使用特权

评论回复
soodesyt| | 2018-1-6 21:42 | 显示全部楼层
楼主说的中断是什么意思?

使用特权

评论回复
mnynt121| | 2018-1-6 21:42 | 显示全部楼层
lefeng 发表于 2017-12-27 17:56
貌似要先暂停PWM输出,才能改变PWM配置寄存器的值吧?  建议好好看下单片机的手册 ...

正常的控制不是直接修改寄存器吗?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

150

主题

920

帖子

2

粉丝