OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5999|回复: 20

用了DS18B20后,滴答定时器中断也用不了了,各种中断都用不了,很烦

[复制链接]

25

主题

115

帖子

0

精华

高级会员

Rank: 4

积分
940
金钱
940
注册时间
2018-11-9
在线时间
146 小时
发表于 2021-11-26 17:08:51 | 显示全部楼层 |阅读模式
10金钱
用了DS18B20后,滴答定时器中断也用不了了,各种中断都用不了,用了影响温度采集,ds18b20对时序要求严格,我需要大概5秒采集一次温度,用的F429,大家有啥好的办法吗?

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

2

主题

592

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1458
金钱
1458
注册时间
2019-7-28
在线时间
137 小时
发表于 2021-11-26 17:13:52 | 显示全部楼层
用RTOS,上任务,用临界保护
回复

使用道具 举报

25

主题

115

帖子

0

精华

高级会员

Rank: 4

积分
940
金钱
940
注册时间
2018-11-9
在线时间
146 小时
 楼主| 发表于 2021-11-26 17:18:42 | 显示全部楼层
lpwithv 发表于 2021-11-26 17:13
用RTOS,上任务,用临界保护

上RTOS,不好微秒延时呀
回复

使用道具 举报

11

主题

2149

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4930
金钱
4930
注册时间
2015-1-10
在线时间
618 小时
发表于 2021-11-26 17:40:12 | 显示全部楼层
你划个定时器给18B20做时序不就完了,哪怕在定时器中断里面处理都没问题
回复

使用道具 举报

25

主题

115

帖子

0

精华

高级会员

Rank: 4

积分
940
金钱
940
注册时间
2018-11-9
在线时间
146 小时
 楼主| 发表于 2021-11-26 17:41:51 | 显示全部楼层
阿侑kevin 发表于 2021-11-26 17:40
你划个定时器给18B20做时序不就完了,哪怕在定时器中断里面处理都没问题

中断里读取不会有问题吗
回复

使用道具 举报

11

主题

2149

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4930
金钱
4930
注册时间
2015-1-10
在线时间
618 小时
发表于 2021-11-26 17:44:33 | 显示全部楼层
dingning 发表于 2021-11-26 17:41
中断里读取不会有问题吗

怎么会有问题呢,按照时序进的中断,读的只是GPIO的电平
回复

使用道具 举报

25

主题

115

帖子

0

精华

高级会员

Rank: 4

积分
940
金钱
940
注册时间
2018-11-9
在线时间
146 小时
 楼主| 发表于 2021-11-26 17:44:35 | 显示全部楼层
dingning 发表于 2021-11-26 17:41
中断里读取不会有问题吗

感觉读取需要1ms的时长,放中断里不太好
回复

使用道具 举报

11

主题

2149

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4930
金钱
4930
注册时间
2015-1-10
在线时间
618 小时
发表于 2021-11-26 17:52:52 | 显示全部楼层
dingning 发表于 2021-11-26 17:44
感觉读取需要1ms的时长,放中断里不太好

你没注意读取的函数里面也有delay?把大的延时都通过定时器实现,小的延时用空计数,在中断里面只有小的延时和GPIO操作
回复

使用道具 举报

12

主题

3399

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
8676
金钱
8676
注册时间
2020-5-11
在线时间
4150 小时
发表于 2021-11-27 10:22:07 | 显示全部楼层
没做过,想到两个方案:
方案1:在采集一个位期间关中断,采完一个位开中断。
方案2:定时器结合状态机,定时中断里每次操作一个位。
专治疑难杂症
回复

使用道具 举报

25

主题

115

帖子

0

精华

高级会员

Rank: 4

积分
940
金钱
940
注册时间
2018-11-9
在线时间
146 小时
 楼主| 发表于 2021-11-27 14:06:58 | 显示全部楼层
LcwSwust 发表于 2021-11-27 10:22
没做过,想到两个方案:
方案1:在采集一个位期间关中断,采完一个位开中断。
方案2:定时器结合状态机, ...

好的,等我尝试出来分享
回复

使用道具 举报

25

主题

115

帖子

0

精华

高级会员

Rank: 4

积分
940
金钱
940
注册时间
2018-11-9
在线时间
146 小时
 楼主| 发表于 2021-11-27 14:07:20 | 显示全部楼层
阿侑kevin 发表于 2021-11-26 17:52
你没注意读取的函数里面也有delay?把大的延时都通过定时器实现,小的延时用空计数,在中断里面只有小的 ...

好的,等我尝试出来分享
回复

使用道具 举报

13

主题

643

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2432
金钱
2432
注册时间
2019-12-28
在线时间
527 小时
发表于 2021-11-28 16:48:34 | 显示全部楼层
我觉得用系统也可以,分配一个任务去获取18b20de温度,读的时候进保护去获取
回复

使用道具 举报

32

主题

883

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4036
金钱
4036
注册时间
2015-11-14
在线时间
545 小时
发表于 2021-11-29 08:23:55 | 显示全部楼层
用定时器啊, 类似于状态机似的。比如5us以内的直接在定时器死等延时, 大于5us的用定时器延时,设定好定时器的时间, 下次中断刚好延时完成。这样又不用死等。
回复

使用道具 举报

25

主题

115

帖子

0

精华

高级会员

Rank: 4

积分
940
金钱
940
注册时间
2018-11-9
在线时间
146 小时
 楼主| 发表于 2021-11-29 10:13:44 | 显示全部楼层
Electronic 发表于 2021-11-29 08:23
用定时器啊, 类似于状态机似的。比如5us以内的直接在定时器死等延时, 大于5us的用定时器延时,设定好定时器 ...

5us以内的直接在定时器死等延时岂不是浪费cpu性能?我有强迫症感觉
回复

使用道具 举报

32

主题

883

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4036
金钱
4036
注册时间
2015-11-14
在线时间
545 小时
发表于 2021-11-29 14:10:05 | 显示全部楼层
dingning 发表于 2021-11-29 10:13
5us以内的直接在定时器死等延时岂不是浪费cpu性能?我有强迫症感觉

这就要自己去平衡了,看使用的片子了。有些片子一次中断可能就要好几个us。STM32这些中断差不多也有几个us,所以要看芯片去平衡了。再说了,楼主说的是5秒采集一次温度,相对来说也不是非常占用资源
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165537
金钱
165537
注册时间
2010-12-1
在线时间
2117 小时
发表于 2021-12-1 01:49:55 | 显示全部楼层
我们综合实验也支持DS18B20,不是跑得好好的嘛。。。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

25

主题

115

帖子

0

精华

高级会员

Rank: 4

积分
940
金钱
940
注册时间
2018-11-9
在线时间
146 小时
 楼主| 发表于 2021-12-4 15:23:43 | 显示全部楼层
正点原子 发表于 2021-12-1 01:49
我们综合实验也支持DS18B20,不是跑得好好的嘛。。。

我看综合实验就点开测温就关闭其它后台应用了
回复

使用道具 举报

34

主题

322

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1838
金钱
1838
注册时间
2014-12-4
在线时间
717 小时
发表于 2021-12-4 15:37:39 | 显示全部楼层
本帖最后由 loudianxin 于 2021-12-4 15:39 编辑

bsp_ds18b20.zip (3.26 KB, 下载次数: 19)
回复

使用道具 举报

34

主题

322

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1838
金钱
1838
注册时间
2014-12-4
在线时间
717 小时
发表于 2021-12-4 15:40:44 | 显示全部楼层

采用定时器进行时序读取的  具体可以参考他们的H7TOOL工程源码
回复

使用道具 举报

25

主题

115

帖子

0

精华

高级会员

Rank: 4

积分
940
金钱
940
注册时间
2018-11-9
在线时间
146 小时
 楼主| 发表于 2021-12-4 15:56:19 | 显示全部楼层

厉害了,受教了
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165537
金钱
165537
注册时间
2010-12-1
在线时间
2117 小时
发表于 2021-12-4 22:54:12 | 显示全部楼层
dingning 发表于 2021-12-4 15:23
我看综合实验就点开测温就关闭其它后台应用了

音乐播放不是正常运行的吗?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-14 15:05

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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