找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1044|回复: 6
收起左侧

关于STC单片机PWM关闭

[复制链接]
ID:419045 发表于 2022-12-15 10:40 | 显示全部楼层 |阅读模式
请教下 我用PWM控制电机速度改变频率可以实现 ,现在想按下开始按键后PWM运行,然后按下关闭按键 PWM停止工作  CR = 0,然后按下另一个键for循发送50个脉冲控制电机角度 ,现在是CR = 0后,电机不转 但是有电流 这是为什么 是因为PWM没关闭吗还是因为PWM后 IO口还是PWM输出口 没有改成通用IO口
1671071468632.png
1671071501033.png
回复

使用道具 举报

ID:1034262 发表于 2022-12-15 12:18 | 显示全部楼层
示波器看一下就知道了。
回复

使用道具 举报

ID:879348 发表于 2022-12-15 14:38 | 显示全部楼层
很多单片机PWM置0还是有1/256的脉冲
回复

使用道具 举报

ID:1034262 发表于 2022-12-15 15:28 | 显示全部楼层
wufa1986 发表于 2022-12-15 14:38
很多单片机PWM置0还是有1/256的脉冲

STC的单片的PWM是可以连续输出0或1的。
回复

使用道具 举报

ID:401564 发表于 2022-12-15 16:24 | 显示全部楼层
STC的PWM关闭并不是使端口输出低电平,只是关闭了PWM的时钟而已,端口在你关闭PWM那一刻是什么电平,之后就一直是这个电平
以下是STC8G的关闭,并使端口低电平
        CR=0;                                        //
        CCAPM1=0x00;                        //
        CCAP1H=0xff;                        //PWM保持低电平
        PCA_PWM1=0x02;                        //
回复

使用道具 举报

ID:213173 发表于 2022-12-15 17:22 | 显示全部楼层
控制CR只是启/停PCA定时器,并不能确定输出口的电平状态。以前做过一个项目用到PWM开停,写CCAP0H=0xff;用占空比0%不理想,输出端还有零星脉冲。后来改用AUXR1特殊功能寄存器把输出脚切换到空闲脚,输出端回复到普通IO口,初始设置低电平的方法解决的。有没有更好的方法就没有继续探索。
回复

使用道具 举报

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
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

Powered by 单片机教程网

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