驱动DS18B20感想
驱动DS18B20感想学单总线通信
看时序图
改bug
看了他人的程序
使用数据倍乘避免浮点数运算
在无启用硬件浮点单元情况下
加快数据处理速度
4位小数?骗自己的吧。 wulin 发表于 2026-3-23 20:12
4位小数?骗自己的吧。
二进制4位
1
—
2的4次方
即精度
1÷16=0.0625
既然使用了18B20这种异步单总线的器件,就完全没必要考虑加速数据处理速度了,
因为瓶颈在通讯时序和传感器数据刷新速率上
如果不玩单总线多点采集的话,强烈推荐NST1001之类的脉冲数字传感器,或者各种I2C接口的传感器
起码不用担心各种中断打断时序影响读取数据。 晓飛飛 发表于 2026-3-23 23:39
既然使用了18B20这种异步单总线的器件,就完全没必要考虑加速数据处理速度了,
因为瓶颈在通讯时序和传感器 ...
异步单总线通信1byte耗时大几百us
我之前想还在想RTOS如何处理 DS18B20可以用定时器跑状态机,效率很高,不占用什么CPU。做好了可以数码管扫描,串口modbus通信,18B20采集同时进行不中断。我写有也发出来了。 cnos 发表于 2026-3-24 15:22
DS18B20可以用定时器跑状态机,效率很高,不占用什么CPU。做好了可以数码管扫描,串口modbus通信,18B20采 ...
非常感谢
状态空闲时释放CPU 狂热主宰 发表于 2026-3-23 21:55
二进制4位
1
—
实际使用中保留1位小数为佳 18B20天生是为Dallas自家带有1-Wire总线接口的单片机而生的,对于不带1-Wire总线的单片机,软件模拟时序是唯一的使用方式,
相对于用傻延时做时序,用状态机效率确实会降低不少时钟周期占用,
但是状态机的扫描周期仍然受制于1-Wire总线时序的最小扫描周期约束,且读写时序期间不允许出现大于状态机周期的其他中断事件发生。
如果玩RTOS,还是强烈推荐I2C接口的温度传感器,何必掉在一颗树上而放弃了整片森林。
页:
[1]