【iCore4 双核心板_uC/OS-II】例程八:消息邮箱
一、实验说明:
/** Name : main* Description : ---* Author : liu.** History* --------------------* Rev : 0.00* Date : 07/12/2017* * create.* --------------------*/ /*实验现象:打开串口工具putty.exe,按下ARM.KEY按键,终端显示此时任务1的运行次数;松开按键,停止显示。*/ int main(void) {system_clock.initialize(); //系统时钟初始化led.initialize(); //LED初始化usart6.initialize(115200); //串口初始化 key.initialize();usart6.printf("\x0c"); //清屏 usart6.printf("\033[1;32;40m"); //设置字体终端为绿色usart6.printf("\r\n Hello, I am iCore4!\r\n\r\n");LED_RED_ON;OSInit(); //UCOS初始化OSTaskCreate(start_task, //创建开始任务(void*)0, //任务参数(OS_STK*)&START_TASK_STK[START_STK_SIZE-1], //任务堆栈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;TaskMbox = OSMboxCreate(0);//创建邮箱 OSStatInit();//初始化统计任务 OS_ENTER_CRITICAL();//关中断 OSTaskCreate(AppTask1_task,(void*)0,(OS_STK*)&AppTask1_TASK_STK[AppTask1_STK_SIZE-1],AppTask1_TASK_PRIO);//创建AppTask1任务OSTaskCreate(AppTask2_task,(void*)0,(OS_STK*)&AppTask2_TASK_STK[AppTask2_STK_SIZE-1],AppTask2_TASK_PRIO);//创建AppTask2任务OSTaskSuspend(OS_PRIO_SELF);//挂起start_task任务 OS_EXIT_CRITICAL();//开中断 }
/** Name : AppTask1_task* Description : ---* Author : liu.** History* --------------------* Rev : 0.00* Date : 07/12/2017* * create.* --------------------*/ void AppTask1_task(void *pdata) {int timer = 0;char cnt[20];while(1){if(ARM_KEY_STATE == KEY_DOWN){timer++;sprintf(cnt,"%d",timer); //数据转换OSMboxPost(TaskMbox, &cnt); //发送邮箱 }OSTimeDlyHMSM(0,0,0,500); //延时500ms } } /** Name : AppTask2_task* Description : ---* Author : liu.** History* --------------------* Rev : 0.00* Date : 07/12/2017* * create.* --------------------*/ void AppTask2_task(void *pdata) {u8 err;u8 *s;while(1){s = (INT8U *)OSMboxPend(TaskMbox,OS_TICKS_PER_SEC,&err);if(err == OS_ERR_NONE){usart6.printf("\r\nThe number of task1 : %s\r\n",s); //打印出邮箱的值 }OSTimeDlyHMSM(0,0,0,500); //延时500ms } }
iCore4链接:
【iCore4 双核心板_uC/OS-II】例程八:消息邮箱相关推荐
- 【iCore4 双核心板_uC/OS-II】例程九:消息队列
一.实验说明: 前面介绍通过信息传递可以进行任务间的交流,信息也可以直接发送给一个任务,在uC/OS-II中每一个任务在它们内部都有一个消息队列,也即任务消息队列,用户可以直接给一个任务发送消息,不需 ...
- 【iCore4 双核心板_uC/OS-II】例程一:认识 uC/OS-II
一.实验说明: 本例程移值入uC/OS-II,建立三个任务,红色和绿色LED分别以固定频率闪烁,并且打开串口工具, 输出浮点数据. 二.源代码下载链接: 链接:https://pan.baidu.co ...
- 【iCore4 双核心板_FPGA】例程八:乘法器实验——乘法器使用
实验现象: 程序运行时,绿色led闪烁(目前,具体的乘法器调用请参考iCore3乘法器例程) 核心代码: module multiplier_ctrl(input clk_25m,input rst_ ...
- 【iCore4 双核心板_ARM】例程十七:USB_MSC实验——读/写U盘(大容量存储器)
实验方法: 1.将跳线冒跳至USB_UART,通过Micro USB 线将iCore4 USB-UART接口与电脑相连. 2.打开PUTTY软件. 3.通过读U盘转接线将U盘(或者读卡器)与iCore ...
- 【iCore4 双核心板_ARM】例程五:SYSTICK定时器 实验——定时点亮LED
实验原理: 通过STM32的三个GPIO口驱动三色LED的三个通道,设定GPIO为推挽输出模式,采 用灌电流方式与LED连接,输出高电平LED灭,输出低电平LED亮,通过系统定时器实现 1s定时,每秒 ...
- 【iCore4 双核心板_FPGA】例程七:状态机实验——状态机使用
实验现象: 按键每按下一次,三色LED改变一次状态. 核心代码: //--------------------module_rst_n---------------------------// mod ...
- 【iCore4 双核心板_ARM】例程三十八:DSP MATH库测试
实验现象: 核心代码: int main(void) {/* USER CODE BEGIN 1 */int i,j;int res;float time[2];static int error_fl ...
- 【iCore4 双核心板_ARM】例程二十:LWIP_TCP_CLIENT实验——以太网数据传输
实验现象: 核心代码: int main(void) { system_clock.initialize(); //ϵͳʱÖÓ³õʼ»¯led.initialize(); //LED³õʼ» ...
- 【iCore4 双核心板_FPGA】例程十六:基于双口RAM的ARM+FPGA数据存取实验
实验现象: 核心代码: int main(void) {/* USER CODE BEGIN 1 */int i;int address,data;char error_flag = 0;char r ...
- 【iCore4 双核心板_FPGA】例程十一:FSMC总线通信实验——独立地址模式
实验原理: STM32F767上自带FMC控制器,本实验将通过FMC总线的地址独立模式实现STM32与FPGA 之间通信,FPGA内部建立RAM块,FPGA桥接STM32和RAM块,本实验通过FSMC ...
最新文章
- webmin下重启linux系统
- nodejs html转excel,Node.js excel sheetjs/js-xlsx
- linux服务器性能监控命令汇总(一)
- Virtools 3D行为编程系列(一)
- Apache Kafka 1.0.0正式发布!
- python中的基本数据结构
- 【Flink】Flink Remote Shuffle 开源:面向流批一体与云原生的 Shuffle 服务
- 配置web工程的过程
- 八皇后问题程序及注解
- linux系统怎样挂载虚拟盘,linux 应用盘(从盘)挂载方法linux操作系统 -电脑资料...
- Android使用ksoap2调用C#中的webservice实现图像上传
- RBAC权限认证流程图
- NYOJ 90整数划分
- 数据挖掘概念与技术(原书第三版)范明 孟小峰译-----第三章课后习题答案
- SCADA电力系统基础业务知识
- python调用nmap扫描全端口_Python-通过调用Nmap来进行端口扫描
- 流光快门Matlab,华为手机流光快门太好玩了!这几个特效分分钟拍出大片感
- 光伏发电matlab模块,光伏发电的matlab仿真.docx
- 创建菜单与游戏界面(下)
- 游戏服务器和普通服务器的区别