新手上路
- 积分
- 34
- 金钱
- 34
- 注册时间
- 2018-4-22
- 在线时间
- 6 小时
|
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运行。
|