找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

关于STC单片机PWM关闭

查看数: 2271 | 评论数: 6 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2022-12-15 10:40

正文摘要:

请教下 我用PWM控制电机速度改变频率可以实现 ,现在想按下开始按键后PWM运行,然后按下关闭按键 PWM停止工作  CR = 0,然后按下另一个键for循发送50个脉冲控制电机角度 ,现在是CR = 0后,电机不转 但是 ...

回复

ID:814525 发表于 2022-12-15 21:18
STC头文件引用就可以了,测过有效
#define                PWM0_NORMAL()        PCA_PWM0 &= ~3                                //PWM0正常输出(默认)
#define                PWM0_OUT_0()        PCA_PWM0 |=  3                                //PWM0一直输出0
#define                PWM0_OUT_1()        PCA_PWM0 &= ~3, CCAP0H = 0;        //PWM0一直输出1

#define                PWM1_NORMAL()        PCA_PWM1 &= ~3                                //PWM1正常输出(默认)
#define                PWM1_OUT_0()        PCA_PWM1 |=  3                                //PWM1一直输出0
#define                PWM1_OUT_1()        PCA_PWM1 &= ~3, CCAP1H = 0;        //PWM1一直输出1

#define                PWM2_NORMAL()        PCA_PWM2 &= ~3                                //PWM2正常输出(默认)
#define                PWM2_OUT_0()        PCA_PWM2 |=  3                                //PWM2一直输出0
#define                PWM2_OUT_1()        PCA_PWM2 &= ~3, CCAP2H = 0;        //PWM2一直输出1
ID:213173 发表于 2022-12-15 17:22
控制CR只是启/停PCA定时器,并不能确定输出口的电平状态。以前做过一个项目用到PWM开停,写CCAP0H=0xff;用占空比0%不理想,输出端还有零星脉冲。后来改用AUXR1特殊功能寄存器把输出脚切换到空闲脚,输出端回复到普通IO口,初始设置低电平的方法解决的。有没有更好的方法就没有继续探索。
ID:401564 发表于 2022-12-15 16:24
STC的PWM关闭并不是使端口输出低电平,只是关闭了PWM的时钟而已,端口在你关闭PWM那一刻是什么电平,之后就一直是这个电平
以下是STC8G的关闭,并使端口低电平
        CR=0;                                        //
        CCAPM1=0x00;                        //
        CCAP1H=0xff;                        //PWM保持低电平
        PCA_PWM1=0x02;                        //
ID:1034262 发表于 2022-12-15 15:28
wufa1986 发表于 2022-12-15 14:38
很多单片机PWM置0还是有1/256的脉冲

STC的单片的PWM是可以连续输出0或1的。
ID:879348 发表于 2022-12-15 14:38
很多单片机PWM置0还是有1/256的脉冲
ID:1034262 发表于 2022-12-15 12:18
示波器看一下就知道了。

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表