OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3646|回复: 2

在学RTX,自己写了个关于信箱进程通信的源程序,分享给大家。

[复制链接]

13

主题

79

帖子

0

精华

初级会员

Rank: 2

积分
83
金钱
83
注册时间
2015-9-22
在线时间
76 小时
发表于 2016-5-20 11:04:28 | 显示全部楼层 |阅读模式
主程序,其他的不是很重要 ~res是串口中断接受到消息的一个变量
#include "includes.h"
u8 Res;
int *msg;
unsigned int mpool[16*sizeof(unsigned int)/4+3];
OS_TID HandleLedtask;
OS_TID Handlesendmailtask;
os_mbx_declare (LEDBox,16);  /* Declare an RTX mailbox  */
__task void Ledtask (void);
__task void sendmailtask (void);

int main (void)
{        
        NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置系统中断优先级分组2
        uart_init(115200);
        LED_Init();
        BEEP_Init();        //串口初始化波特率为115200
_init_box(mpool,sizeof(mpool),sizeof(unsigned int));
        os_sys_init(sendmailtask);

       
while(1);
}


__task void sendmailtask ()
{        //int *msg;
        Handlesendmailtask=os_tsk_self ();
  os_mbx_init(LEDBox, sizeof(LEDBox));
        HandleLedtask=os_tsk_create(Ledtask,3);
        while(1)
        {
  printf("sendmailtask\r\n");
  msg =_alloc_box(mpool);       
  *msg  = Res;
        printf("Res=%d\r\n",Res);
        os_mbx_send(LEDBox, msg, 0xffff);
                if(os_mbx_send(LEDBox, msg, 0xffff)==OS_R_OK)
                        printf("send success\r\n");
        os_dly_wait(200);
}
}

       
__task void Ledtask ()
{
        u32 receive,*rptr;
       
       
        while(1)
        {
        printf("     LedtTask\r\n");
  os_mbx_wait(LEDBox,(void **)&rptr,0xffff);       
  receive = *rptr;
                if(os_mbx_wait(LEDBox,(void **)&rptr,0xffff)==OS_R_MBX)
                                printf("Receive success  receive=%d\r\n",receive);
   if(receive==0x01)
        {
                printf("接受到了0x01,红灯亮起来\r\n");
   LED0=0;}       
          if(receive==0x02)
{  LED0=1;
                printf("接受到了0x02,红灯熄灭\r\n\r\n");}
                if(receive==0x03)
        {
                printf("接受到了0x03,绿灯亮起来\r\n");
         LED1=0;}       
        if(receive==0x04)
        {
                printf("接受到了0x04,绿灯熄灭\r\n");
         LED1=1;}       
                _free_box (mpool, rptr); /* Release the memory block */
          
        os_dly_wait(200);
}
}
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

72

主题

2711

帖子

2

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
3505
金钱
3505
注册时间
2014-8-4
在线时间
696 小时
发表于 2016-5-20 11:19:28 | 显示全部楼层
以我资质之鲁钝,当尽平心静气、循序渐进、稳扎稳打之力。
回复 支持 反对

使用道具 举报

3

主题

548

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1383
金钱
1383
注册时间
2015-2-3
在线时间
197 小时
发表于 2016-5-20 18:16:09 | 显示全部楼层
请问RTX相对于其他RTOS有什么优势吗?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-2-27 09:30

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表