找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

关于单片机PWM多级调速控制LED和小型直流电机的问题

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

正文摘要:

环境介绍:硬件部分有LD3320语音识别模块+STC11L56XE+51单片机开发板(普中51-单核-A2)。语音识别模块的程序已经写好了(见下部分),每次输入语音信号后,LD3320模块对应输出口输出一个高电平信号,几十毫秒后,再 ...

回复

ID:882276 发表于 2022-4-28 21:48
hzhehe 发表于 2022-4-28 14:04
这里提一下我的看法,定时器中断在不使用的时候关闭就好,占用资源浪费cpu时间。然后微亮可能是楼主硬件问 ...

谢谢指点,我研究研究
ID:735831 发表于 2022-4-28 18:46
Mr.zxw 发表于 2022-4-28 14:15
您好,可以麻烦您说详细点吗,谢谢

判断的值为这样 if(ture)执行接下来的代码ture可以为变量,只要值为ture(1)都会执行
ID:882276 发表于 2022-4-28 14:15
lkc8210 发表于 2022-4-28 13:15
改为if(led1){Compare1=5……

您好,可以麻烦您说详细点吗,谢谢
ID:882276 发表于 2022-4-28 14:09
yzwzfyz 发表于 2022-4-28 12:11
与你的硬件结构有关。
上图。

啊,能不能指出比较具体一点的方向,我好去改一下,谢谢您。
ID:735831 发表于 2022-4-28 14:04
这里提一下我的看法,定时器中断在不使用的时候关闭就好,占用资源浪费cpu时间。然后微亮可能是楼主硬件问题最好贴一下原理图,这里个人的看法是可能定时器没有关闭导致的进入中断后重复赋值导致的翻转。为什么要在中断里做判断,如果是要做两个不同设备的PWM为什么不用两路定时器,就算只用一路为什么不做标志位回到主函数或者子函数再判断,如果需要进行的运算复杂的话可以做成子函数再调用会比在中断中做三四次判断快得多。最好仔细研究一下你子函数判断次数,优化代码冗余,不要做多余判断
ID:735831 发表于 2022-4-28 13:55
为什么要在定时器里做比较再做翻转,既然要稳定的PWM那每做一次判断和io翻转的时间不会更长吗?这边建议进入中断后先不要赋值,万一还没比较完又开始了第二次中断就不好了,可以的话计算,比较等问题放在主函数或者子函数调用会比直接在中断程序中处理更迅速。如果出现微亮那可能是没有关闭中断导致IO存在翻转的情况。可以的话能贴一下原理图和相关引脚输出波形(上示波器看)是最好的了,希望能帮助到楼主
ID:161164 发表于 2022-4-28 13:15
改为if(led1){Compare1=5……
ID:123289 发表于 2022-4-28 12:11
与你的硬件结构有关。
上图。

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

Powered by 单片机教程网

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