OpenEdv-开源电子网

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

uC/OS-II是如何做到多个任务同时延时的

[复制链接]

145

主题

477

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1264
金钱
1264
注册时间
2012-4-2
在线时间
69 小时
发表于 2012-7-15 10:55:06 | 显示全部楼层 |阅读模式
uC/OS-II是如何做到多个任务同时延时的
还有
void SysTick_Configuration(void)
{
  SysTick->CTRL&=~(1<<2);//SYSTICK使用外部时钟源
 SysTick->CTRL|=1<<1;   //开启SYSTICK中断
 SysTick->LOAD=9000;    //产生1ms中断
 //bit2清空,选择外部时钟  HCLK/8
 MY_NVIC_Init(3,3,SystemHandler_SysTick,2);//组2,最低优先级
 SysTick->CTRL|=1<<0;   //开启SYSTICK
}
 
MY_NVIC_Init(3,3,SystemHandler_SysTick,2);//组2,最低优先级
为什么要设为最低优先级?如果有其他中断,那它不是不动了?
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165225
金钱
165225
注册时间
2010-12-1
在线时间
2107 小时
发表于 2012-7-15 13:56:07 | 显示全部楼层
这个设置是无用的.
你可以去掉
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

145

主题

477

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1264
金钱
1264
注册时间
2012-4-2
在线时间
69 小时
 楼主| 发表于 2012-7-15 14:25:28 | 显示全部楼层
复【1楼】正点原子:
---------------------------------
原子哥你是说设置SysTick的优先级没用的吗?

这么说是不是不设优先级也能发生中断了?
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165225
金钱
165225
注册时间
2010-12-1
在线时间
2107 小时
发表于 2012-7-15 19:12:45 | 显示全部楼层
systick有个默认的优先级的.
这个优先级也是可以修改,有库函数提供直接修改SYSTICK优先级的.
但是不是我们这个函数!
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

0

主题

3

帖子

0

精华

新手上路

积分
24
金钱
24
注册时间
2012-8-10
在线时间
0 小时
发表于 2012-8-10 22:08:03 | 显示全部楼层
MY_NVIC_Init(3,3,SystemHandler_SysTick,2);//组2,最低优先级

也就是说启动程序中有设置这个的或者是说不设置的情况下因为有默认值,是可以正常工作的(UCOSII的流水灯程序),是吗?
目前这个设置是可以屏蔽掉的?

在研究这个程序中,发现SystemHandler_SysTick是32位的,但是MY_NVIC_Init的这个参数又是8位的,编译产生警告。
目前是说直接不用这个设置呢还是怎么改的好,求回答





回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165225
金钱
165225
注册时间
2010-12-1
在线时间
2107 小时
发表于 2012-8-10 23:48:49 | 显示全部楼层
回复【5楼】gavinyang:
---------------------------------
不用设置.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

0

主题

3

帖子

0

精华

新手上路

积分
24
金钱
24
注册时间
2012-8-10
在线时间
0 小时
发表于 2012-8-11 00:18:43 | 显示全部楼层
非常感谢!
回复 支持 反对

使用道具 举报

20

主题

562

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
670
金钱
670
注册时间
2012-2-28
在线时间
0 小时
发表于 2012-8-11 09:05:22 | 显示全部楼层
多任务同时延时,感觉可以自己设置,取消就绪状态,赋予延时时间,一个个设置就OK了,或者写一个函数,参数为优先级和延时时限,或许就可以了
努力,前进。
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-1 14:30

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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