OpenEdv-开源电子网

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

有关ucos延时问题

[复制链接]

4

主题

17

帖子

0

精华

新手上路

积分
28
金钱
28
注册时间
2018-2-5
在线时间
18 小时
发表于 2018-9-3 10:22:57 | 显示全部楼层 |阅读模式
30金钱
调试ucos3的时候出现了两个问题,望知道的网友帮我解答一下;软件开发环境为正点原子移植的ucos3,硬件没问题,第一个问题:ucos的delay_ms()函数延时不准,delay_ms()函数是使用正点原子的,裸机是没问题的,现在我要输出pwm方波,代码周期为20ms,实测周期为15ms,当我将周期改为25ms的时候实测周期为20ms,总是少5ms,我猜想这是不是与系统心跳的5ms有关系呢?小弟实在找不出问题出现在哪里。
                        for(i=0;i<10;i++)
                        {
                                GPIO_SetBits(GPIOB,GPIO_Pin_15);    //输出1
                                delay_ms(2);
                                GPIO_ResetBits(GPIOB,GPIO_Pin_15);    //输出1
                                delay_ms(23);//实际延时不准,实测周期为20ms


                        }
                        for(j=0;j<40;j++)
                        {
                                GPIO_SetBits(GPIOB,GPIO_Pin_15);    //输出1
                                delay_ms(1);
                                GPIO_ResetBits(GPIOB,GPIO_Pin_15);    //输出1
                                delay_ms(24);
                        }

第二个问题:有关ds18b20,程序也是用正点原子的,裸机的时候一切正常,可是上系统的时候出现了问题,我500ms读一次温度,偶尔会出现这样的现象,第一次读25度,下一次读变为57,然后继续这样的循环,仿真查看过十六进制数,两者没有规律,不存在数据左移。我怀疑也是ucos的延时问题;
                        OS_CRITICAL_ENTER();//进入临界区
                temperature=DS18B20_Get_Temp();
                        OS_CRITICAL_EXIT();        //进入临界区
                DS18B20_value=(u32)temperature;


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

使用道具 举报

6

主题

31

帖子

0

精华

初级会员

Rank: 2

积分
81
金钱
81
注册时间
2018-5-28
在线时间
9 小时
发表于 2018-9-3 13:02:45 | 显示全部楼层
本帖最后由 valon 于 2018-9-3 13:04 编辑

rtos的延时本身就不准确,会有最大1个心跳时间的误差。仔细查看系统源码可以看出,如果在你调用OSTimeDly之后,刚好进入心跳中断,这时候延迟计数就会减一,如果之前你设置延时10ms,心跳时间是5ms,这时候实际延迟也就是10-5=5ms。一般情况下,调用OSTimeDly,需要把延迟计数加一。产生pwm最好使用硬件产生,比如定时器
回复

使用道具 举报

6

主题

31

帖子

0

精华

初级会员

Rank: 2

积分
81
金钱
81
注册时间
2018-5-28
在线时间
9 小时
发表于 2018-9-3 13:08:11 | 显示全部楼层
读取数据出错可能是时序问题,也有可能是别的什么线程打断了时序
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-2 08:18

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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