找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3841|回复: 7
收起左侧

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

[复制链接]
ID:229772 发表于 2020-3-24 21:16 | 显示全部楼层 |阅读模式
我用51单片机产生PWM波用于驱动LED,但是我还需要读取DHT11的数据,因为定时器中断干扰了我DHT11的时序,所以想问下有什么解决方法
回复

使用道具 举报

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,不影响光源
回复

使用道具 举报

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

使用道具 举报

ID:229772 发表于 2020-3-29 15:40 | 显示全部楼层
之一知足 发表于 2020-3-25 21:55
读取个DHT11能花费多长时间,读取的时候把定时器TR1=0,执行完读取DHT11再将TR1=1,不影响光源

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

使用道具 举报

ID:229772 发表于 2020-3-29 15:41 | 显示全部楼层
Y_G_G 发表于 2020-3-26 08:31
1,读取的时候关闭定时器
2,读取的时候关闭全局中断
3,读取的时候禁止定时器中断响应

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

使用道具 举报

ID:709172 发表于 2020-3-29 16:47 | 显示全部楼层
有的单片机的定时器有PWM输出功能,开启后,一直生成一定占空比的PWM,不需要定时器中断,除非需要改变占空比。
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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