【iCore4 双核心板_uC/OS-II】例程一:认识 uC/OS-II
2024-08-26 21:46:13
一、实验说明:
本例程移值入uC/OS-II,建立三个任务,红色和绿色LED分别以固定频率闪烁,并且打开串口工具,
输出浮点数据。
二、源代码下载链接:
链接:https://pan.baidu.com/s/1o9pY0uI 密码:5roo
三、核心代码:
/*
* Name : main
* Description : ---
* Author : zh.
*
* History
* --------------------
* Rev : 0.00
* Date : 07/12/2017
*
* create.
* --------------------
*/
/*实验现象:
红色和绿色LED灯分别以固定的频率闪烁,并且打开串口工具,可以看到有数据输出。
*/
int main(void)
{
system_clock.initialize(); //系统时钟初始化
led.initialize(); //LED初始化
usart6.initialize(); //串口初始化 OSInit(); //UCOS初始化
OSTaskCreate(start_task, //创建开始任务
(void*), //任务参数
(OS_STK*)&START_TASK_STK[START_STK_SIZE-], //任务堆栈
START_TASK_PRIO); //任务优先级
OSStart(); //开启UCOS
}
/*
* Name : start_task
* Description : ---
* Author : liu.
*
* History
* --------------------
* Rev : 0.00
* Date : 07/12/2017
*
* create.
* --------------------
*/
void start_task(void *pdata)
{
OS_CPU_SR cpu_sr; OSStatInit();//初始化统计任务 OS_ENTER_CRITICAL();//关中断 OSTaskCreate(led0_task,(void*),(OS_STK*)&LED0_TASK_STK[LED0_STK_SIZE-],LED0_TASK_PRIO);//创建LED0任务
OSTaskCreate(led1_task,(void*),(OS_STK*)&LED1_TASK_STK[LED1_STK_SIZE-],LED1_TASK_PRIO);//创建LED1任务
OSTaskCreate(usart_task,(void*),(OS_STK*)&USART_TASK_STK[USART_STK_SIZE-],USART_TASK_PRIO);//创建usart任务
OSTaskSuspend(OS_PRIO_SELF);//挂起start_task任务 OS_EXIT_CRITICAL();//开中断
}
/*
* Name : led0_task
* Description : ---
* Author : liu.
*
* History
* --------------------
* Rev : 0.00
* Date : 07/12/2017
*
* create.
* --------------------
*/
void led0_task(void *pdata)
{
while()
{
LED_RED_ON; //红灯亮
OSTimeDlyHMSM(,,,); //延时500ms
LED_RED_OFF; //红灯灭
OSTimeDlyHMSM(,,,); //延时500ms
}
}
/*
* Name : led_task
* Description : ---
* Author : liu.
*
* History
* --------------------
* Rev : 0.00
* Date : 07/12/2017
*
* create.
* --------------------
*/
void led1_task(void *pdata)
{
while()
{
LED_GREEN_ON; //绿灯亮
OSTimeDlyHMSM(,,,); //延时1000ms
LED_GREEN_OFF; //绿灯灭
OSTimeDlyHMSM(,,,); //延时1000ms
}
}
/*
* Name : usart_task
* Description : ---
* Author : liu.
*
* History
* --------------------
* Rev : 0.00
* Date : 07/12/2017
*
* create.
* --------------------
*/
void usart_task(void *pdata)
{
double f=0.1; while()
{
f+=0.1f; //浮点型运算
usart6.printf("float f=%.4f\r\n",f); //串口输出
OSTimeDlyHMSM(,,,); //延时500ms
}
}
iCore4链接:
最新文章
- HTML 学习笔记 JQuery(DOM 操作2)
- Web应用网络模型
- SDL2.0的几何图行绘画
- spring mvc源码解析
- 设计模式----代理模式(Proxy)
- IO模型总结
- C++中malloc/free和new/delete 的使用
- UVA11396-Claw Decomposition(二分图判定)
- C#用WebClient下载File时操作超时的问题
- --@angularJS--一个简单的UI-Router路由demo
- js之Math对象
- 关于 httpUrlConnection 的 setDoOutput 与 setDoInput的区别
- [bzoj]2962序列操作
- Mysql使用规范文档 20180223版
- GIL全局锁测试
- Dynamics 365 Online-Microsoft Flow
- 修改Docker默认的网段
- Linux(Ubuntu-CentOS)
- Java与JavaScript之间关于JSON的是非恩怨
- HI3516EV100 RTMP添加音频