ucosii运用实例
来源:互联网 发布:网络拓扑环形结构 编辑:程序博客网 时间:2024/06/05 07:02
一、实例准备:工程中包含ucosii的3个文件夹:CONFIG、CORE、PORT。并main中#include "includes.h"。
二、基本框架:
//设置任务堆栈大小#define LED_STK_SIZE 64#define LED1_STK_SIZE 64#define LCD_STK_SIZE 64#define KEY_STK_SIZE 64#define TOUCH_STK_SIZE 64#define START_STK_SIZE 512//设置任务优先级#define LED_TASK_Prio 6#define LED1_TASK_Prio 5#define LCD_TASK_Prio 4#define KEY_TASK_Prio 2#define TOUCH_TASK_Prio 7#define START_TASK_Prio 10//任务堆栈OS_STK TASK_LED1_STK[LED_STK_SIZE];OS_STK TASK_LED_STK[LED1_STK_SIZE];OS_STK TASK_LCD_STK[LCD_STK_SIZE];OS_STK TASK_START_STK[START_STK_SIZE];OS_STK TASK_KEY_STK[KEY_STK_SIZE];OS_STK TASK_TOUCH_STK[TOUCH_STK_SIZE];//任务声明void TaskStart(void *pdata);void TaskLed(void *pdata);void TaskLed1(void *pdata);void TaskLCD(void *pdata);void TaskKey(void *pdata);void TaskTouch(void *pdata);
main()包含的代码:
OSInit(); //UCOSII初始化OSTaskCreate( TaskStart,(void *)0,(OS_STK *)&TASK_START_STK[START_STK_SIZE-1],START_TASK_Prio );OSStart();//UCOSII启动//开始任务void TaskStart(void * pdata){pdata = pdata; OS_ENTER_CRITICAL(); OSTaskCreate(TaskLed, (void * )0, (OS_STK *)&TASK_LED_STK[LED_STK_SIZE-1], LED_TASK_Prio);OSTaskCreate(TaskLed1, (void * )0, (OS_STK *)&TASK_LED1_STK[LED1_STK_SIZE-1], LED1_TASK_Prio); OSTaskSuspend(START_TASK_Prio);//suspend but not deleteOS_EXIT_CRITICAL();}
编写任务:
<span style="font-size:12px;">//任务1//控制DS0的亮灭.void TaskLed(void *pdata){while(1){LED0=!LED0;OSTimeDlyHMSM(0,0,0,500);}}</span>
systick配置遵循原子配置,在ucosii文件os_cfg.h头文件定义每秒节拍。
0 0
- ucosii运用实例
- UCOSII 内存实例
- ucosII多任务调度实例
- ucosii
- ucosii
- ucosii
- UcosII
- UCOSII 信号量和信号量集实例
- UCOSII上任务堆栈检测OSTaskStkChk实例
- DAO运用实例
- DAO运用实例
- spring 实例运用
- datalist的实例运用
- GetTextExtentExPoint运用与实例。
- jQuery 实例运用
- bitmap运用实例
- JDBC事务运用实例
- mysql sql_log_bin运用实例
- LINUX内核阅读_01
- g++ 编译动态链接库和静态链接库
- Unit 2: Prepositions
- 使用oracle10g官方文档找到监听文件(listener.ora)的模板
- Unit 2: Conjunctions
- ucosii运用实例
- 如何设置ImageView的某一个方向的外边距
- 字符串链接变量
- Unit 2: Interjections
- Oracle的数据字典和动态性能视图
- C++中函数指针的运用
- 【软考】数据结构
- Unit 3: Reading
- 我与C++设计模式(十三)——策略模式