打印
[LOOK]

LOOK在助学板上两个任务简单例程

[复制链接]
3125|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
hotpower|  楼主 | 2011-5-11 01:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
LED, TE, TI, ST, ANTI
本帖最后由 hotpower 于 2011-5-23 19:05 编辑

1.LED.H
#include "look_config.h"
#include <look.h>
#include <instantiate>

// 任务类 task_led1_t 的定义
class task_led1_t : public task_t {
public:
task_led1_t() __OPT_ATTR__; // 构造函数

protected:
void routine(); // 任务例程
};

// 任务类 task_led1_t 的构造函数
__OPT_INLINE__ task_led1_t::task_led1_t()
{
// TODO: 在此初始化 task_led1_t 的类成员
}

//extern instantiate::task<task_led1_t, LOOK_STACK_SIZE> task_led1;

// 任务类 task_led2_t 的定义
class task_led2_t : public task_t {
public:
task_led2_t() __OPT_ATTR__; // 构造函数

protected:
void routine(); // 任务例程
};

// 任务类 task_led2_t 的构造函数
__OPT_INLINE__ task_led2_t::task_led2_t()
{
// TODO: 在此初始化 task_led2_t 的类成员
}

extern instantiate::task<task_led1_t, LOOK_STACK_SIZE> task_led1;
extern instantiate::task<task_led2_t, LOOK_STACK_SIZE> task_led2;
2.LED.CPP
#include "NUC1xx.h"
#include "NUC1xxM051Seriescfg.h"
#include "led.h"

// 任务类 task_led_t 的例程
void task_led1_t::routine()
{
// TODO: 在此编写 task_led_t 例程的内容
uint32_t data = ~0b1000;
while (true) {
// TODO: 在此编写 task_led_t 例程的内容
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);
}
}

#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
3.LOOK_LED.rar
LOOK_LED.rar (624.65 KB)

相关帖子

沙发
Swallow_0322| | 2011-5-11 07:32 | 只看该作者
顶!昨晚只跑一个任务,下载到学习板四个小灯刚跑起来,还没来得急看老师的程序,小区就突然断电了!
正起劲呢,就被掐了,郁闷!
只有今天晚上回去重新温故了!

使用特权

评论回复
板凳
hotpower|  楼主 | 2011-5-11 07:43 | 只看该作者
昨晚做了两个任务的look。
感觉不错,只要知道如何增加任务类即可。
实际只需折腾两个文件,即led.h和led.cpp

使用特权

评论回复
地板
john_lee| | 2011-5-11 12:16 | 只看该作者
老哥出手了,这个要顶。

使用特权

评论回复
5
hotpower|  楼主 | 2011-5-11 14:50 | 只看该作者
惭愧,想在单位继续,文件没拷全,好像4.12也可以look

使用特权

评论回复
6
hotpower|  楼主 | 2011-5-14 11:42 | 只看该作者
本帖最后由 hotpower 于 2011-5-14 11:44 编辑

LOOK_config.h
注意第14行的:
// <o> CPU 时钟频率 <1000000-50000000:1000000>

老师生成时为:
// <o> CPU 时钟频率 <25000000-50000000:25000000>

#ifndef __LOOK_CONFIG_H
#define __LOOK_CONFIG_H

//*** <<< Use Configuration Wizard in Context Menu >>> ***
// <o> 调度算法
//                <0=> 协作(Co-operative)
//                <1=> 时间片轮转(Round-Robin)
//                <2=> 固定优先级(Fixed Priority)
//                <3=> 最早截止期优先(Earliest Deadline First)
//                <4=> 多级队列(Multi-Level Queue)
//                <5=> 多级队列+时间片轮转(Multi-Level Queue & Round-Robin)
#define LOOK_SCHEDULING_VAL                1

// <o> CPU 时钟频率 <1000000-50000000:1000000>
#define F_CPU                                        12000000

// <o> 系统节拍频率 <1-1000>
#define LOOK_TICKS_PER_SEC                1000

// <o> 采用“时间片轮转”调度方式时,默认的时间片 <1-1000>
#define LOOK_DEFAULT_TIMESLICE        10

// <o> 默认任务栈大小 <0-100>
#define LOOK_STACK_SIZE                        40
//*** <<< end of configuration section >>> ***

#if LOOK_SCHEDULING_VAL == 0
#define LOOK_SCHEDULING_H        <co>
#elif LOOK_SCHEDULING_VAL == 1
#define LOOK_SCHEDULING_H        <rr>
#elif LOOK_SCHEDULING_VAL == 2
#define LOOK_SCHEDULING_H        <fp>
#elif LOOK_SCHEDULING_VAL == 3
#define LOOK_SCHEDULING_H        <edf>
#elif LOOK_SCHEDULING_VAL == 4
#define LOOK_SCHEDULING_H        <mlq>
#else
#define LOOK_SCHEDULING_H        <mlqrr>
#endif
#endif

使用特权

评论回复
7
timthorpe.ly| | 2011-5-15 00:17 | 只看该作者
必须顶,看这里更觉我的渺小了

使用特权

评论回复
8
hotpower|  楼主 | 2011-5-16 11:01 | 只看该作者
刚做了一个look唤醒
将某任务用delay()阻塞,另一个任务wakeup()唤醒那个自己阻塞的任务

使用特权

评论回复
9
nayaix| | 2011-7-23 19:16 | 只看该作者
顶起.....

使用特权

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

本版积分规则

个人签名:[url=http://www.21ic.com/tools/HotWC3_V1.23.html]

1538

主题

21697

帖子

506

粉丝