ucosii上运行ds18b20出现问题

[复制链接]
 楼主| jobszheng 发表于 2011-11-27 19:54 | 显示全部楼层 |阅读模式
我如果不加载uC/OS-II,采集DS18B20温度传感器的数据一点问题也没有。
但是在uC/OS-II下,就是采集不出来数据。
估计是延时的问题,使用了systick的延时。可是与此类似的使用GPIO模拟I2C通讯的元件也使用了相同的延时方案,则没有问题,运行良好。
大家有木有遇到类似的情况,是不是我哪里还有没有注意到的地方。
李富贵 发表于 2011-11-27 20:33 | 显示全部楼层
CPU_CRITICAL_ENTER();         
  读取18b20;
  CPU_CRITICAL_EXIT();
 楼主| jobszheng 发表于 2011-11-27 21:46 | 显示全部楼层
谢谢楼上这位仁兄。
方法倒是能读出来相关的数据了。
但是由于其破坏了systick的值。我的uc/os-ii的dly值不会改变。其它的程序没有办法再跑了。
我开始更改思路,将系统节拍时钟换成tim2硬件时钟了。
李富贵 发表于 2011-11-27 22:15 | 显示全部楼层
谢谢楼上这位仁兄。
方法倒是能读出来相关的数据了。
但是由于其破坏了systick的值。我的uc/os-ii的dly值不会改变。其它的程序没有办法再跑了。
我开始更改思路,将系统节拍时钟换成tim2硬件时钟了。 ...
jobszheng 发表于 2011-11-27 21:46

别胡扯了,按micrium的官方port
CPU_CRITICAL_ENTER();
是关中断,但是systick不是中断,而是hard fault

cpisd i        
cpisd f

你自己理解8
 楼主| jobszheng 发表于 2011-11-27 22:22 | 显示全部楼层
本帖最后由 jobszheng 于 2011-11-27 22:28 编辑

可问题的确是这样啊。
进去之后,看dly根本就不变了。板子上还有一个LED灯也就不在闪了。
我再看看吧
yuandm1 发表于 2011-11-28 07:34 | 显示全部楼层
学习
woyaochenggong 发表于 2011-11-29 08:08 | 显示全部楼层
官网看看吧
 楼主| jobszheng 发表于 2011-11-29 16:23 | 显示全部楼层
不用去官网看。
已经搞定了,使用了一个硬件中断源提供了节拍控制,然后就没有问题了。

话说,官网真得没有什么可看的。大多了,无从下手~~
您需要登录后才可以回帖 登录 | 注册

本版积分规则

认证:嵌入式技术专家
简介:热爱开源,乐于分享。在嵌入式技术领域里面,主攻通讯协议,Modbus,TCP/IP以及虚拟化和RTOS

30

主题

740

帖子

23

粉丝
快速回复 在线客服 返回列表 返回顶部
认证:嵌入式技术专家
简介:热爱开源,乐于分享。在嵌入式技术领域里面,主攻通讯协议,Modbus,TCP/IP以及虚拟化和RTOS

30

主题

740

帖子

23

粉丝
快速回复 在线客服 返回列表 返回顶部