打印

ucosii上运行ds18b20出现问题

[复制链接]
3870|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
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

使用特权

评论回复
5
jobszheng|  楼主 | 2011-11-27 22:22 | 只看该作者
本帖最后由 jobszheng 于 2011-11-27 22:28 编辑

可问题的确是这样啊。
进去之后,看dly根本就不变了。板子上还有一个LED灯也就不在闪了。
我再看看吧

使用特权

评论回复
6
yuandm1| | 2011-11-28 07:34 | 只看该作者
学习

使用特权

评论回复
7
woyaochenggong| | 2011-11-29 08:08 | 只看该作者
官网看看吧

使用特权

评论回复
8
jobszheng|  楼主 | 2011-11-29 16:23 | 只看该作者
不用去官网看。
已经搞定了,使用了一个硬件中断源提供了节拍控制,然后就没有问题了。

话说,官网真得没有什么可看的。大多了,无从下手~~

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

9

主题

311

帖子

2

粉丝