OpenEdv-开源电子网

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

ds18b20在ucos iii上跑,读出值为0

[复制链接]

5

主题

9

帖子

0

精华

新手上路

积分
34
金钱
34
注册时间
2018-4-22
在线时间
6 小时
发表于 2018-4-22 01:28:18 | 显示全部楼层 |阅读模式
1金钱
我用的是原子例4-1 UCOSIII移植这个程序,加入ds18b20的驱动,裸机正常读取,跑系统就读出为0,下面是我放在ucos中的任务函数(直接写在了原来的浮点测试函数里),在读取的时候我也关闭系统调度了,为何还是读出0值。void float_task(void *p_arg)
{
    OS_ERR err;
    (void)p_arg;  //'p_arg'并没有用到,防止编译器警告  
    while(1)
    {      
        OSSchedLock(&err);//关闭系统任务调度

        temp[1] = DS18B20_Get_Temp(1);
        printf("当前第1路temp温度为:%0.4lf ℃\r\n",temp[1]);
        OSSchedUnlock(&err);//恢复调度                           
        OSTimeDlyHMSM(0,0,1,0,OS_OPT_TIME_HMSM_STRICT,&err);
    }
}

           


最佳答案

查看完整内容[请看2#楼]

禁止任务调度没用。要禁止中断。另外,因为ds18b20里面用了很多delay_us,不知道你用没用我们的SYSTEM文件夹,需要设置使能OS,不然会影响OS运行。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165287
金钱
165287
注册时间
2010-12-1
在线时间
2107 小时
发表于 2018-4-22 01:28:19 | 显示全部楼层
禁止任务调度没用。要禁止中断。另外,因为ds18b20里面用了很多delay_us,不知道你用没用我们的SYSTEM文件夹,需要设置使能OS,不然会影响OS运行。
回复

使用道具 举报

5

主题

9

帖子

0

精华

新手上路

积分
34
金钱
34
注册时间
2018-4-22
在线时间
6 小时
 楼主| 发表于 2018-4-22 10:45:10 | 显示全部楼层
正点原子 发表于 2018-4-22 01:52
禁止任务调度没用。要禁止中断。另外,因为ds18b20里面用了很多delay_us,不知道你用没用我们的SYSTEM文件 ...

禁止哪个中断,我用了原子的使能OS了
回复

使用道具 举报

88

主题

7377

帖子

5

精华

资深版主

Rank: 8Rank: 8

积分
14980
金钱
14980
注册时间
2013-11-13
在线时间
1823 小时
发表于 2018-4-22 12:15:19 | 显示全部楼层
调用关闭全局中断的方式!
回复

使用道具 举报

1

主题

20

帖子

0

精华

初级会员

Rank: 2

积分
66
金钱
66
注册时间
2018-1-22
在线时间
7 小时
发表于 2018-4-24 23:26:35 | 显示全部楼层
感觉要禁中断,不然通讯会被打断。
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-2 06:35

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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