打印
[新手园地]

傻瓜菜鸟LOOK第一帖——唤醒任务

[复制链接]
2681|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
LED, TI, IO, ST, ANTI
本帖最后由 weshiluwei6 于 2011-6-25 20:41 编辑

大概有半个月没玩大叔的M0了,落下了不少,这些天忙着应付老师去了,嘿嘿。
重拾LOOK,感觉很多都忘记了,一切从头开始哈。
紧跟大叔和三心大哥的脚步。
 


#include "NUC1xx.h"
#include "NUC1xxM051Seriescfg.h"
#include "led4.h"
// 任务类 task_led_t 的例程
void task_led1_t::routine()
{
// TODO: 在此编写 task_led_t 例程的内容
uint32_t data = ~0b1000;
  while (true) {
  // TODO: 在此编写 task_led_t 例程的内容
  delay();//阻塞等待task_led2唤醒
  data &= 0b111000;
  data <<= 1;
  data += data >> 3;
  GPIOAs.DMASK.Regs = ~0b111000;
  GPIOAs.DOUT.Regs = data;
//  delay(LOOK_TICKS_PER_SEC / 2);
  }
}
// 任务类 task_led_t 的例程
void task_led2_t::routine()
{
// TODO: 在此编写 task_led_t 例程的内容
uint32_t data = 0b100;
  while (true) {
  // TODO: 在此编写 task_led_t 例程的内容
  GPIOAs.DMASK.Regs = ~0b100;
  GPIOAs.DOUT.Regs = data;
  data ^= 0b100;
  delay(LOOK_TICKS_PER_SEC / 10);//阻塞100mS
  task_led1.wakeup();//唤醒task_led1
  }
}
#ifdef LOOK_SCHEDULING_PRIORITY
instantiate::task<task_led1_t, LOOK_STACK_SIZE> task_led1(0);
instantiate::task<task_led2_t, LOOK_STACK_SIZE> task_led2(0);
#else
instantiate::task<task_led1_t, LOOK_STACK_SIZE> task_led1;
instantiate::task<task_led2_t, LOOK_STACK_SIZE> task_led2;
#endif



相关帖子

沙发
hotpower| | 2011-6-25 23:20 | 只看该作者
好,又开始学习了。不错,放假不要玩游戏,玩物丧志的。

使用特权

评论回复
板凳
weshiluwei6|  楼主 | 2011-6-25 23:24 | 只看该作者
2# hotpower
晓得的 大叔
谨记大叔教诲
暑假导师有安排的
尽量少玩游戏

使用特权

评论回复
地板
hotpower| | 2011-6-26 07:13 | 只看该作者
这个例程用了2个LOOK的函数:
1.delay();//延时n个节拍,定时到被唤醒继续运行。无参数或n=0表示无限延时,必须由其他任务唤醒。
2.wakeup();//唤醒其他任务被休眠的任务。

这个例程有2个任务:
1.task_led1
   LED2~LED4右移一次就休眠,必须由task_led2唤醒。
2.task_led2
   LED1每100mS即0.1S闪烁一次。并且唤醒一次task_led1任务。

注意:
在task_led1休眠,task_led2延时100mS期间,本例程的2个任务都在阻塞!!!
这时是LOOK的idle空闲任务在内部运行,用户可以覆盖即接管这个任务。

使用特权

评论回复
5
hotpower| | 2011-6-26 07:16 | 只看该作者
感觉以后应该来个网友例程笔记点评

使用特权

评论回复
6
Swallow_0322| | 2011-6-26 07:46 | 只看该作者
顶!水王 !
o(∩_∩)o 哈哈,真与250有缘分,帖子积分又拿个250大奖!

使用特权

评论回复
7
Swallow_0322| | 2011-6-26 07:53 | 只看该作者
大叔!
1.task_led1
   LED2~LED4右移一次就休眠,必须由task_led2唤醒。
应该为:直接休眠,等待唤醒,task_led2唤醒后LED2(GPA.3)~LED4(GPA.5)右移一次继续睡觉吧!

使用特权

评论回复
8
weshiluwei6|  楼主 | 2011-6-26 21:40 | 只看该作者
7# Swallow_0322


对头  三心大哥

使用特权

评论回复
9
hotpower| | 2011-6-27 09:33 | 只看该作者
水王,继续努力!

使用特权

评论回复
10
tao560532| | 2011-8-17 01:14 | 只看该作者
赞一个

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:250水王,种菜浇水,要输就输给理想,要败就败给高手。不可浮躁

7

主题

1125

帖子

1

粉丝