标题: DHT11和单片机定时器冲突的问题 [打印本页]

作者: 2695154202    时间: 2020-3-24 21:16
标题: DHT11和单片机定时器冲突的问题
我用51单片机产生PWM波用于驱动LED,但是我还需要读取DHT11的数据,因为定时器中断干扰了我DHT11的时序,所以想问下有什么解决方法

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

定时器必须开着   因为是控制光源的,关了就灭了
作者: 之一知足    时间: 2020-3-25 21:55
2695154202 发表于 2020-3-25 19:40
定时器必须开着   因为是控制光源的,关了就灭了

读取个DHT11能花费多长时间,读取的时候把定时器TR1=0,执行完读取DHT11再将TR1=1,不影响光源
作者: Y_G_G    时间: 2020-3-26 08:31
1,读取的时候关闭定时器
2,读取的时候关闭全局中断
3,读取的时候禁止定时器中断响应
4,使用片上的PWM功能,不用定时器作为PWM
以上4种方法,总有一种是可以的吧
作者: 2695154202    时间: 2020-3-29 15:40
之一知足 发表于 2020-3-25 21:55
读取个DHT11能花费多长时间,读取的时候把定时器TR1=0,执行完读取DHT11再将TR1=1,不影响光源

影响,我做的是家用的照明灯,上面说的LED其实不是,是COB光源,就这几毫秒能把我闪瞎,我实物已经闪瞎我了,现在我解决方法就是上电默认读取温湿度,发送到手机,手机发送开机命令在开灯,开等时候不读取DHT11
作者: 2695154202    时间: 2020-3-29 15:41
Y_G_G 发表于 2020-3-26 08:31
1,读取的时候关闭定时器
2,读取的时候关闭全局中断
3,读取的时候禁止定时器中断响应

前三种我都试过会闪,第四种要换MCU
作者: 文心雕龙7    时间: 2020-3-29 16:47
有的单片机的定时器有PWM输出功能,开启后,一直生成一定占空比的PWM,不需要定时器中断,除非需要改变占空比。




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1