ucos的按键任务通信设计

按键任务检测是否有键按下,有键按下即发送消息邮箱。响应任务检测消息邮箱,有消息则在串口打印输出。

按键任务检测是否有键按下,有键按下即发送消息邮箱。响应任务检测消息邮箱,有消息则控制步进电机的正转,反转,停止、加速和减速。

两个按键任务一个响应任务。有键按下即发送消息邮箱。任一消息均控制响应任务运行。两个按键任务中任意一个按键按下,则发送一个消息邮箱给响应任务。若按下是数字(0-9),则在串口打印输出,并在数码管显示;如为非数字(其他),则分别对应 LED 灯的闪烁、步进电机的正转,反转,停止、加速和减速。


#include "Includes.h"               /* uC/OS interface */

#include    "option.h"

#include    "2410lib.h"

#include    "uhal.h"

 

 

 

/* 任务栈 */

OS_STK StackLED[STACKSIZE]= {0, }; // 任务LED任务栈

OS_STK StackSEG[STACKSIZE]= {0, }; // 任务SEG任务栈

OS_STK StackSEG1[STACKSIZE]= {0, }; // 任务SEG任务栈

 

/* 任务ID */

char IdLED = '1'; // 任务LED ID

char IdSEG = '2'; // 任务SEG ID

char IdSEG1 = '3'; // 任务SEG ID

 

/* 任务处理函数 */

void TaskLED(void *Id); // 任务LED任务处理函数

void TaskSEG(void *Id); // 任务SEG任务处理函数

void TaskSEG1(void *Id); // 任务SEG任务处理函数

 

/* 邮箱 */

OS_EVENT *Mbox1;

INT8U  ch;

INT8U  i;

 

 

/*

 * 跑马灯闪烁函数,调用一次,四个跑马灯由亮变灭或者由灭变亮

 */

void User_LED_Blink( void)

{

static int led_status = 0;

led_status += 1;

if(led_status % 2 == 0)

Led_Display(0x03);

else

Led_Display(0x00);

}

 

void User_LED_Blink1(void)

{

static int led_status = 0;

led_status +=

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值