OpenEdv-开源电子网

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

实验54 UCOSII实验2-信号量和邮箱 历程会自动复位

[复制链接]

2

主题

10

帖子

0

精华

新手上路

积分
38
金钱
38
注册时间
2013-5-17
在线时间
0 小时
发表于 2013-5-17 15:15:19 | 显示全部楼层 |阅读模式

//开始任务
void start_task(void *pdata)
{
    OS_CPU_SR cpu_sr=0;

 
 pdata = pdata;    

 msg_key=OSMboxCreate((void*)0); //创建消息邮箱

 
  NowRunpar.array[0]=0x10;
  NowRunpar.array[1]=0x11;
  NowRunpar.array[2]=0x12;
  NowRunpar.array[3]=0x13;
  NowRunpar.array[4]=0x14;
  NowRunpar.array[5]=0x15;
  NowRunpar.array[6]=0x16;
  NowRunpar.array[7]=0x17;
  NowRunpar.array[8]=0x18;
  NowRunpar.array[9]=0x19;
  NowRunpar.array[10]=0x1A;
  
  
   Usart1_SendB(0xEE);
   Usart1_SendB(NowRunpar.cond.name);
   Usart1_SendB(NowRunpar.cond.num);
   Usart1_SendB(NowRunpar.cond.pullflow>>8);
   Usart1_SendB(NowRunpar.cond.pullflow);
   Usart1_SendB(NowRunpar.cond.pushflow>>8);
   Usart1_SendB(NowRunpar.cond.pushflow);
   
   Usart1_SendB(NowRunpar.cond.volume>>24);
   Usart1_SendB(NowRunpar.cond.volume>>16);
   Usart1_SendB(NowRunpar.cond.volume>>8);
   Usart1_SendB(NowRunpar.cond.volume);
   
   Usart1_SendB(NowRunpar.cond.position);

 
 
 OSStatInit();     //初始化统计任务.这里会延时1秒钟左右 
  OS_ENTER_CRITICAL();   //进入临界区(无法被中断打断)   
 //OSTaskCreate(lan_task,(void *)0,(OS_STK*)&LAN_TASK_STK[LAN_STK_SIZE-1],LAN_TASK_PRIO);
  //OSTaskCreate(poll_task,(void *)0,(OS_STK*)&OLL_TASK_STK[POLL_STK_SIZE-1],POLL_TASK_PRIO);
   OSTaskCreate(main_task,(void *)0,(OS_STK*)&MAIN_TASK_STK[MAIN_STK_SIZE-1],MAIN_TASK_PRIO);   
 //OSTaskCreate(key_task,(void *)0,(OS_STK*)&KEY_TASK_STK[KEY_STK_SIZE-1],KEY_TASK_PRIO);        
   OSTaskSuspend(START_TASK_PRIO); //挂起起始任务.
 OS_EXIT_CRITICAL();    //退出临界区(可以被中断打断)
}   


 OSTaskSuspend(START_TASK_PRIO); //挂起起始任务.

为什么会重复运行,串口几秒种就会发一次start_task任务中的串口发送数据


正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-5-17 16:21:15 | 显示全部楼层
我测试正常。
//开始任务
void start_task(void *pdata)
{
    OS_CPU_SR cpu_sr=0;
pdata = pdata;    
msg_key=OSMboxCreate((void*)0); //创建消息邮箱
sem_beep=OSSemCreate(0); //创建信号量     
printf("restart\r\n");
//OSStatInit(); //初始化统计任务.这里会延时1秒钟左右
  OS_ENTER_CRITICAL(); //进入临界区(无法被中断打断)    
  OSTaskCreate(led_task,(void *)0,(OS_STK*)&LED_TASK_STK[LED_STK_SIZE-1],LED_TASK_PRIO);    
  OSTaskCreate(touch_task,(void *)0,(OS_STK*)&TOUCH_TASK_STK[TOUCH_STK_SIZE-1],TOUCH_TASK_PRIO);      
  OSTaskCreate(beep_task,(void *)0,(OS_STK*)&BEEP_TASK_STK[BEEP_STK_SIZE-1],BEEP_TASK_PRIO);      
  OSTaskCreate(main_task,(void *)0,(OS_STK*)&MAIN_TASK_STK[MAIN_STK_SIZE-1],MAIN_TASK_PRIO);      
  OSTaskCreate(key_task,(void *)0,(OS_STK*)&KEY_TASK_STK[KEY_STK_SIZE-1],KEY_TASK_PRIO);      
  OSTaskSuspend(START_TASK_PRIO); //挂起起始任务.
OS_EXIT_CRITICAL(); //退出临界区(可以被中断打断)
}
restart只会打印一次。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-7-20 04:08

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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