PWM问题

[复制链接]
850|7
 楼主| royee9999 发表于 2019-5-4 11:43 | 显示全部楼层 |阅读模式
本帖最后由 royee9999 于 2019-5-4 12:10 编辑

PIC16F877A,TMR2还没有打开,为什么就有脉冲输出了?
void main(void)
{
    TRISC=0B11111011;
    PR2=0X63;
    CCPR1L=0X32;
    CCP1CON=0B00001100;
    T2CON=0B00000010;
     //TMR2ON=1;
    while(1);        
}
如果没有while(1);语句,就没有脉冲输出了,百思不得其解。
CoolSilicon 发表于 2019-5-5 08:44 | 显示全部楼层
main就是一个函数, 如果你不写个语句,让它停留在里面, MCU运行完main函数, 会继续往后执行, 然后重启,然后反复......

评论

不一定会重启啊  发表于 2019-5-5 12:24
lihui567 发表于 2019-5-5 12:24 | 显示全部楼层
记得刚开始学习STM32的单片机时,没有while循环的话程序会进入硬件错误中断,
oxygenzz 发表于 2019-5-6 16:32 | 显示全部楼层
正常的情况main()函数中要有一个while(1)无限循环的。

对于楼主的程序,运行起来后,程序会停在while(1)语句处。
楼主的意思是,此时在RC2 管脚上有PWM信号输出吗?频率对吗?
 楼主| royee9999 发表于 2019-5-6 21:41 | 显示全部楼层
oxygenzz 发表于 2019-5-6 16:32
正常的情况main()函数中要有一个while(1)无限循环的。

对于楼主的程序,运行起来后,程序会停在while(1)语 ...

对的,仿真看见有脉冲信号输出了,烧到板子上给驱动器,电机也动了。可是初始化时,我没有开TMR2啊,我想在需要时再TMR2ON=1;让电机动起来。难道这样做不可以吗?
CoolSilicon 发表于 2019-5-7 09:25 | 显示全部楼层
royee9999 发表于 2019-5-6 21:41
对的,仿真看见有脉冲信号输出了,烧到板子上给驱动器,电机也动了。可是初始化时,我没有开TMR2啊,我想 ...

正常的做法是, 需要电机  转起来的时候, 是使能/禁止PWM模块的输出, 而不是去操作它的时基.
systemchip 发表于 2019-5-7 09:35 | 显示全部楼层
T2没开,PWM不会有的,你仿真看一下T2CON的具体值是什么
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

2

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部