找回密码
 立即注册

QQ登录

只需一步,快速开始

帖子
查看: 3896|回复: 7
打印 上一主题 下一主题
收起左侧

DHT11和单片机定时器冲突的问题

[复制链接]
跳转到指定楼层
楼主
ID:229772 发表于 2020-3-24 21:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我用51单片机产生PWM波用于驱动LED,但是我还需要读取DHT11的数据,因为定时器中断干扰了我DHT11的时序,所以想问下有什么解决方法
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

举报

沙发
ID:191511 发表于 2020-3-24 23:46 | 只看该作者
在接收dht11的数据的时候关掉中断,读完以后再打开。这个是最简单的办法。高级的用法就是用合适的定时中断作为时间片,时分复用,再采用状态机去处理dht11和pwm
回复

举报

板凳
ID:229772 发表于 2020-3-25 19:40 | 只看该作者
wo4fisher 发表于 2020-3-24 23:46
在接收dht11的数据的时候关掉中断,读完以后再打开。这个是最简单的办法。高级的用法就是用合适的定时中断 ...

定时器必须开着   因为是控制光源的,关了就灭了
回复

举报

地板
ID:342451 发表于 2020-3-25 21:55 | 只看该作者
2695154202 发表于 2020-3-25 19:40
定时器必须开着   因为是控制光源的,关了就灭了

读取个DHT11能花费多长时间,读取的时候把定时器TR1=0,执行完读取DHT11再将TR1=1,不影响光源
回复

举报

5#
ID:401564 发表于 2020-3-26 08:31 | 只看该作者
1,读取的时候关闭定时器
2,读取的时候关闭全局中断
3,读取的时候禁止定时器中断响应
4,使用片上的PWM功能,不用定时器作为PWM
以上4种方法,总有一种是可以的吧
回复

举报

6#
ID:229772 发表于 2020-3-29 15:40 | 只看该作者
之一知足 发表于 2020-3-25 21:55
读取个DHT11能花费多长时间,读取的时候把定时器TR1=0,执行完读取DHT11再将TR1=1,不影响光源

影响,我做的是家用的照明灯,上面说的LED其实不是,是COB光源,就这几毫秒能把我闪瞎,我实物已经闪瞎我了,现在我解决方法就是上电默认读取温湿度,发送到手机,手机发送开机命令在开灯,开等时候不读取DHT11
回复

举报

7#
ID:229772 发表于 2020-3-29 15:41 | 只看该作者
Y_G_G 发表于 2020-3-26 08:31
1,读取的时候关闭定时器
2,读取的时候关闭全局中断
3,读取的时候禁止定时器中断响应

前三种我都试过会闪,第四种要换MCU
回复

举报

8#
ID:709172 发表于 2020-3-29 16:47 | 只看该作者
有的单片机的定时器有PWM输出功能,开启后,一直生成一定占空比的PWM,不需要定时器中断,除非需要改变占空比。
回复

举报

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

本版积分规则

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

Powered by 单片机教程网

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