OpenEdv-开源电子网

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

求助STM32中 ucosii 中的ticks

[复制链接]

2

主题

10

帖子

0

精华

新手上路

积分
38
金钱
38
注册时间
2014-4-12
在线时间
0 小时
发表于 2014-5-9 12:01:02 | 显示全部楼层 |阅读模式
5金钱
STM32中 ucosii 中的ticks 为什么一个ticks是5ms,怎么算出来的,不是很懂?
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

120

主题

7878

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12012
金钱
12012
注册时间
2013-9-10
在线时间
427 小时
发表于 2014-5-9 12:07:21 | 显示全部楼层
书上没介绍???那个是心跳的时间,有范围限定的
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复

使用道具 举报

65

主题

440

帖子

0

精华

高级会员

Rank: 4

积分
782
金钱
782
注册时间
2012-8-29
在线时间
17 小时
发表于 2014-5-9 12:40:25 | 显示全部楼层
ticks是心跳,多少毫秒是自己设置的。建议去看书
人生永远追逐着幻光,但谁把幻光看作幻光,谁便沉入无边的苦海
回复

使用道具 举报

2

主题

10

帖子

0

精华

新手上路

积分
38
金钱
38
注册时间
2014-4-12
在线时间
0 小时
 楼主| 发表于 2014-5-10 10:02:24 | 显示全部楼层
回复【3楼】sun_shine:
---------------------------------
如果我想把一个tick设置成1ms,求教如何设置
回复

使用道具 举报

2

主题

10

帖子

0

精华

新手上路

积分
38
金钱
38
注册时间
2014-4-12
在线时间
0 小时
 楼主| 发表于 2014-5-10 10:38:29 | 显示全部楼层
 回复【3楼】 sun_shine :
---------------------------------

之前以为是硬件决定1个时钟节拍多少时间,再由此算出OS_TICKS_PER_SEC。但刚刚试了下程序,修改了OS_TICKS_PER_SEC的值
void led0_task(void *pdata)
{
while(1)
{
LED0=0;
//delay_ms(80);
OSTimeDly (100000);
LED0=1;
//delay_ms(80);
OSTimeDly (100000);
};
}
在这个程序中LED闪的间隔时间不一样,那么如果我把OS_TICKS_PER_SEC设置成1000000,不是就可以实现us级的延时了吗?但是原子哥的书上有这么一句话


这里说的好用是指有两个函数,一个实现ms延时一个实现us延时吗
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-5-10 21:01:14 | 显示全部楼层
回复【5楼】Timo:
---------------------------------
那我设置成:
OS_TICKS_PER_SEC设置成1000000000

不是可以1ns的延时了?

你好好想想就知道是个谬论了....
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-5-10 21:02:00 | 显示全部楼层
回复【5楼】Timo:
---------------------------------
 既然这么奇葩,何不再奇葩一点?

然后蓦然回首.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

2

主题

10

帖子

0

精华

新手上路

积分
38
金钱
38
注册时间
2014-4-12
在线时间
0 小时
 楼主| 发表于 2014-5-14 10:37:38 | 显示全部楼层
回复【6楼】正点原子:
---------------------------------
如果SYSTICK的频率是9MHZ,那么一个最小时间是1/9M约等于0.11us,是不能实现ns的延时,但是OSTimeDly ()us和ms级别的延时是可以的吧,之所以用delay_ms和delay_us比较好,是因为用的是时钟摘取法,将SYSTICK的时间中断设置为5ms,当需要us级别的延时时候,也不用修改OS_TICKS_PER_SEC的值以增加系统负荷,不知道对不对,菜鸟求原子哥指正  T.T
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-5-15 00:21:56 | 显示全部楼层
回复【8楼】Timo:
---------------------------------
你去了解下STM32的中断,处理,最短需要多久时间?
然后你再看看ucosii,推荐的OS_TICKS_PER_SEC范围是多少?
然后,你按你的设计,将OS_TICKS_PER_SEC改为1000000,试试吧。

然后你再来问。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-7-8 02:57

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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