打印
[STM8]

想通过单片机产生PWM

[复制链接]
2339|28
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zhuhuis|  楼主 | 2021-8-8 23:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
想通过单片机产生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的值,  这个函数需要放在中断里还是只运行一次就行??

使用特权

评论回复
沙发
chuxh| | 2021-8-8 23:36 | 只看该作者
貌似要先暂停PWM输出,才能改变PWM配置寄存器的值吧?

使用特权

评论回复
板凳
juventus9554| | 2021-8-8 23:37 | 只看该作者
建议好好看下单片机的手册吧

使用特权

评论回复
地板
renyaq| | 2021-8-8 23:39 | 只看该作者
直接覆盖,CCRx写值就行了

使用特权

评论回复
5
supernan| | 2021-8-8 23:40 | 只看该作者
要是定时器没记完数呢?    定时器计数的时候中断会停止它吗?

使用特权

评论回复
6
morrisk| | 2021-8-8 23:42 | 只看该作者
直接修改寄存器就行。

使用特权

评论回复
7
renyaq| | 2021-8-8 23:45 | 只看该作者
这个直接写成函数最简单。

使用特权

评论回复
8
pengf| | 2021-8-8 23:46 | 只看该作者
这个如果初始化配置之后,直接改变TA2CCR1  TA2CCR2的值

使用特权

评论回复
9
pengf| | 2021-8-8 23:47 | 只看该作者
如果是正弦波的话,可以需要采取硬件电路来实现更好了。

使用特权

评论回复
10
kangzj| | 2021-8-8 23:48 | 只看该作者
最简单就是直接宏定义。

使用特权

评论回复
11
pengf| | 2021-8-8 23:50 | 只看该作者
正常的控制不是直接修改寄存器吗?

使用特权

评论回复
12
stly| | 2021-8-8 23:51 | 只看该作者
可以进入库函数里面看看别人的寄存器操作

使用特权

评论回复
13
juventus9554| | 2021-8-8 23:52 | 只看该作者
可以直接写成函数

使用特权

评论回复
14
pengf| | 2021-8-8 23:53 | 只看该作者
8楼很对,初始化函数可以和设置分开写,这样调用函数就行。

使用特权

评论回复
15
pengf| | 2021-8-8 23:54 | 只看该作者
库函数比较简单,看下别的的代码就行

使用特权

评论回复
16
dingy| | 2021-8-8 23:54 | 只看该作者
我不喜欢库函数,名字不好记

使用特权

评论回复
17
renyaq| | 2021-8-8 23:55 | 只看该作者
改变TA2CCR1  TA2CCR2的值就可以了

使用特权

评论回复
18
houcs| | 2021-8-8 23:56 | 只看该作者
定时器计数的时候中断会停止它吗

使用特权

评论回复
19
jlyuan| | 2021-8-8 23:57 | 只看该作者
修改寄存器啊

使用特权

评论回复
20
juventus9554| | 2021-8-8 23:58 | 只看该作者
直接宏定义试试看

使用特权

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

本版积分规则

728

主题

8464

帖子

6

粉丝