亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? task.c

?? uCOS在LPC213X上的移植。適合ARM嵌入式系統初學者。
?? C
字號:
/**********************************************************************************************
本程序只供學習使用,不得用于其它任何用途,否則后果自負。

  Task.c file

 
本程序只供學習使用,不得用于其它任何用途,否則后果自負。

  ARM_OS_main.c file

  LPC213x上的操作系統——ARM_OS

  作者:heciang
  聯系電話:13811129591
  QQ:176780142
  Email:heciang@126.com
  建立日期:2006-5-1
  修改日期:2006-5-15
  最后修改時間:2006-08-25
  版本:V1.0
 
  Copyright(C) Computer-lov 2006-2016
  All rights reserved
**********************************************************************************************/
**********************************************************************************************/


#include "CPU.H"

#include "interrupt.h"
#include "LED.H"
#include "ARM_00_OS_TaskSwitch.H"
#include "my_type.h"
#include "ARM_00_OS_Core.H"
#include "UART.H"
#include "KEYS.H"
#include "Task.h"

/**********************************************************************************************
任務1。處于掛起狀態,等待一條消息。系統空閑任務會掃描按鍵,當按鍵按下后,系統空閑任務會將
鍵值通過消息發送給任務1。任務1接到消息后,顯示消息的發送者以及消息的信息等。然后控制LED4的亮滅。
**********************************************************************************************/
void Task1(void)
{
 uint32 PrinterDeviceAddr;   //保存打印機設備的地址
 
 PrinterDeviceAddr=OSGetDeviceAddr(OS_PRINTER_DEVICE_ID);   //獲取打印機設備地址
 OSRequestDevice(PrinterDeviceAddr,0);    //申請使用打印機
 
 prints("",1);
 prints(OSCurrentPcb->Title,0);   //顯示任務啟動
 prints(" Start..........................",1);

 OSFreeDevice(PrinterDeviceAddr);   //釋放打印機

 EN_LED1();  //使能LED1
 
 while(1)
  {
   OSTaskSuspend(OSCurrentPcb);  //任務掛起
   if(OSCurrentPcb->Msg)        //如果收到消息
    {
     OSRequestDevice(PrinterDeviceAddr,0);  //申請打印機
	 
     prints("",1);
     prints("",1);
     prints(OSCurrentPcb->Title,0);  //顯示任務標題
     prints(":",1);
     prints("Haha,I have got a message from: ",0);  //顯示相關信息
     prints(OSCurrentPcb->Msg->Sender->Title,1);    //顯示發送者的標題
     prints("The sender's PID is: ",0);
     print_uint32(OSCurrentPcb->Msg->Sender->PID);  //顯示發送者的PID
     prints("",1);
     prints("The message type is:",0);             //消息類型
     print_uint32(OSCurrentPcb->Msg->MsgType);
     prints("",1);
     prints("The message value is",0);             //消息的值
     print_uint32(*(OSCurrentPcb->Msg->pMsg));
     prints("",1);
     prints("",1);
	 
     OSFreeDevice(PrinterDeviceAddr);  //釋放打印機
	 
     switch(*(OSCurrentPcb->Msg->pMsg))    //鍵值散轉
      {
       case KEY1: ON_LED1();break;    //如果是按鍵1按下,則點亮LED1
       case KEY2: OFF_LED1();break;   //如果是按鍵2按下,則熄滅LED1
       default: break;
      }
     OSCurrentPcb->Msg=0;           //消息處理完畢
    }
  }
}
//////////////////////////////////End of function//////////////////////////////////////////////


/**********************************************************************************************
任務2。延遲1S,等待一條消息。系統空閑任務會掃描按鍵,當按鍵按下后,系統空閑任務會將
鍵值通過消息發送給任務1。任務1接到消息后,顯示消息的發送者以及消息的信息等。然后控制LED4的亮滅。
如果1S過后,還未收到消息,則顯示接收超時。
/*********************************************************************************************/
void Task2(void)
{
 uint32 PrinterDeviceAddr;    //保存打印機設備的地址
 
 PrinterDeviceAddr=OSGetDeviceAddr(OS_PRINTER_DEVICE_ID);     //獲取打印機設備地址
 OSRequestDevice(PrinterDeviceAddr,0);                   //申請使用打印機
 
 prints("",1);
 prints(OSCurrentPcb->Title,0);  //顯示任務啟動
 prints(" Start..........................",1);
 OSFreeDevice(PrinterDeviceAddr);   //釋放打印機
 
 EN_LED2();
 while(1)
  {
   OSTaskDelay(100);       //延時等待消息的到來
   if(OSCurrentPcb->Msg)   //如果收到了消息
    {
     OSRequestDevice(PrinterDeviceAddr,0);   //申請使用打印機
     prints("",1);
     prints("",1);
     prints(OSCurrentPcb->Title,0);   //顯示任務的標題
     prints(":",1);
     prints("Haha,I have got a message from: ",0);
     prints(OSCurrentPcb->Msg->Sender->Title,1);     //顯示消息發送者的標題
     prints("The sender's PID is: ",0);
     print_uint32(OSCurrentPcb->Msg->Sender->PID);  //顯示消息發送者的PID
     prints("",1);
     prints("The message type is:",0);
     print_uint32(OSCurrentPcb->Msg->MsgType);    //顯示消息的類型
     prints("",1);
     prints("The message value is",0);
     print_uint32(*(OSCurrentPcb->Msg->pMsg));   //顯示消息
     prints("",1);
     prints("",1);
     OSFreeDevice(PrinterDeviceAddr);    //釋放打印機
     switch(*(OSCurrentPcb->Msg->pMsg))     //鍵值散轉
      {
       case KEY3: ON_LED2();break;    //如果是按鍵3按下,則點亮LED2
       case KEY4: OFF_LED2();break;   //如果是按鍵4按下,則熄滅LED2
       default: break;
      }
     OSCurrentPcb->Msg=0;     //消息處理完畢
    }
   else     //如果1秒后還未收到消息,則
    {
     OSRequestDevice(PrinterDeviceAddr,0);    //申請使用打印機
     prints("",1);
     prints("",1);
     prints(OSCurrentPcb->Title,0);   //顯示任務的標題
     prints(":",1);
     prints("I have not got a message in 1 second!",1);  //顯示未收到消息
     prints("Time out!",1);  //超時
     prints("",1);
     OSFreeDevice(PrinterDeviceAddr);   //釋放打印機
    }
  }
}
//////////////////////////////////End of function//////////////////////////////////////////////


/**********************************************************************************************
任務3。每隔500mS點亮、熄滅一次LED6,并顯示一些信息。
**********************************************************************************************/
void Task3(void)
{
 uint32 PrinterDeviceAddr;      //保存打印機設備的地址
 
 PrinterDeviceAddr=OSGetDeviceAddr(OS_PRINTER_DEVICE_ID);      //獲取打印機設備地址
 OSRequestDevice(PrinterDeviceAddr,0);    //申請使用打印機
 
 prints("",1);
 prints(OSCurrentPcb->Title,0);  //顯示任務啟動
 prints(" Start..........................",1);
 OSFreeDevice(PrinterDeviceAddr);  //釋放打印機
 
 EN_LED3();
 while(1)
  {
   OSRequestDevice(PrinterDeviceAddr,0);    //申請使用打印機
   prints("HaHa,Running in Task3! ",1);  //顯示信息
   OSFreeDevice(PrinterDeviceAddr);       //釋放打印機
   OSTaskDelay(50);           //延時50個時鐘節拍
   ON_LED3();                 //開LED3
   OSRequestDevice(PrinterDeviceAddr,0);    //申請使用打印機
   prints("HaHa,Running in Task3! ",1);  //顯示信息
   OSFreeDevice(PrinterDeviceAddr);       //釋放打印機
   OSTaskDelay(50);           //延時50個時鐘節拍
   OFF_LED3();                //關LED3
  }
}
//////////////////////////////////End of function//////////////////////////////////////////////


/**********************************************************************************************
任務4。每隔1000mS點亮、熄滅一次LED6,并顯示一些信息。
**********************************************************************************************/
void Task4(void)
{
 uint32 PrinterDeviceAddr;        //保存打印機設備的地址
 
 PrinterDeviceAddr=OSGetDeviceAddr(OS_PRINTER_DEVICE_ID);      //獲取打印機設備地址
 OSRequestDevice(PrinterDeviceAddr,0);     // //申請使用打印機
 
 prints("",1);
 prints(OSCurrentPcb->Title,0);   //顯示任務啟動
 prints(" Start..........................",1);
 OSFreeDevice(PrinterDeviceAddr);   //釋放打印機
 EN_LED4();
 while(1)
  {
   OSRequestDevice(PrinterDeviceAddr,0);    //申請使用打印機
   prints("HaHa,Running in Task4! ",1);      //顯示信息
   OSFreeDevice(PrinterDeviceAddr);           //釋放打印機
   OSTaskDelay(100);              //延時100個時鐘節拍
   ON_LED4();                     //開LED4
   OSRequestDevice(PrinterDeviceAddr,0);     //申請使用打印機
   prints("HaHa,Running in Task4! ",1);      //顯示信息
   OSFreeDevice(PrinterDeviceAddr);     //釋放打印機
   OSTaskDelay(100);              //延時100個時鐘節拍
   OFF_LED4();                    //關LED4
  }
}
//////////////////////////////////End of function//////////////////////////////////////////////


/**********************************************************************************************
任務5。鍵盤掃描并發送消息。
**********************************************************************************************/
void Task5(void)
{
 uint32 PrinterDeviceAddr;   //保存打印機設備的地址
 OSpcb * Task1Pcb,* Task2Pcb;   //用來保存任務pcb
 OSMsg Msg;                     //消息
 uint32  MsgValue;              //保存消息值
 
 PrinterDeviceAddr=OSGetDeviceAddr(OS_PRINTER_DEVICE_ID);   //獲取打印機設備地址
 OSRequestDevice(PrinterDeviceAddr,0);    //申請使用打印機
 
 prints("",1);
 prints(OSCurrentPcb->Title,0);   //顯示任務啟動
 prints(" Start..........................",1);
 OSFreeDevice(PrinterDeviceAddr);   //釋放打印機
 
 Task1Pcb=(OSpcb *)(uint32)OSTaskCreat((uint32)Task1,256,4,OS_THUMB_MODE,"Task1");  //創建任務1
 Task2Pcb=(OSpcb *)(uint32)OSTaskCreat((uint32)Task2,256,5,OS_THUMB_MODE,"Task2");  //創建任務2
 
 while(1)
  {
   OSTaskDelay(1);   //延遲10ms
   ScanKey();       //鍵盤掃描
   if(Key.Value)   //如果有鍵按下
    {
     MsgValue=Key.Value;      //保存按鍵值
	 
     (&Msg)->MsgType=KEYBOARD_MSG; //設置要發送的消息類型
     (&Msg)->pMsg=&MsgValue;       //設置要發送的消息的值
     (&Msg)->Length=1;             //設置消息的長度

     OSSendMsg(Task1Pcb,&Msg);     //將消息發送給任務1
     OSSendMsg(Task2Pcb,&Msg);     //將消息發送給任務2
     Key.Value=0;                  //清除鍵值,表示該次按鍵已經處理
    }
  }
}
//////////////////////////////////End of function//////////////////////////////////////////////

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品一区二区成人精品| 国产亚洲欧洲997久久综合 | 在线成人免费观看| 亚洲综合色网站| 欧美浪妇xxxx高跟鞋交| 丝袜美腿成人在线| 日韩精品一区国产麻豆| 国产一区二区三区视频在线播放| 久久久久久久久蜜桃| av影院午夜一区| 亚洲午夜电影网| 欧美成人精品高清在线播放| 国产不卡视频在线播放| 亚洲美女视频一区| 这里是久久伊人| 国产成人精品aa毛片| 亚洲日本在线视频观看| 欧美日韩成人在线| 国产精品18久久久久久久久| 日韩美女精品在线| 777亚洲妇女| 成人国产电影网| 日韩精品欧美精品| 中文字幕乱码一区二区免费| 色婷婷国产精品| 韩国一区二区三区| 一区二区三区免费观看| 精品欧美一区二区在线观看 | 日韩美女精品在线| 日韩一区和二区| 不卡视频一二三| 日本不卡高清视频| 亚洲三级在线看| 精品久久一区二区| 欧美中文字幕一区| 国产伦精品一区二区三区在线观看| 国产欧美日韩在线| 在线观看视频一区二区欧美日韩| 精品一区二区三区香蕉蜜桃| 亚洲欧美激情在线| 久久日韩精品一区二区五区| 欧美在线免费视屏| 成人免费av在线| 蜜桃免费网站一区二区三区| 亚洲精品成人精品456| 2021中文字幕一区亚洲| 欧美日韩aaa| 91久久精品网| 91在线视频免费91| 国产成人一区二区精品非洲| 免费看黄色91| 婷婷综合久久一区二区三区| ...av二区三区久久精品| 精品国产区一区| 337p亚洲精品色噜噜| 色av成人天堂桃色av| 国产99精品视频| 精品一区二区三区免费播放| 日韩精品亚洲一区| 亚洲第一主播视频| 亚洲主播在线观看| 伊人性伊人情综合网| 自拍偷在线精品自拍偷无码专区| 久久精品夜夜夜夜久久| 日韩视频在线观看一区二区| 欧美特级限制片免费在线观看| 91色视频在线| a4yy欧美一区二区三区| 国产成人av资源| 成人深夜视频在线观看| 国产美女av一区二区三区| 久久99热这里只有精品| 美国三级日本三级久久99| 日韩激情一二三区| 日韩精品高清不卡| 日韩不卡在线观看日韩不卡视频| 亚洲成人www| 天堂va蜜桃一区二区三区漫画版| 亚洲成人一区二区| 午夜电影一区二区三区| 欧美96一区二区免费视频| 奇米四色…亚洲| 国产一区二区三区免费看| 精品午夜一区二区三区在线观看| 美女任你摸久久| 韩国欧美国产一区| 国产成人啪免费观看软件| 国产乱对白刺激视频不卡| 成人午夜看片网址| 91麻豆精东视频| 欧美日韩一级二级三级| 欧美一区二区三区在线观看视频| 日韩一区二区三区视频在线观看| 欧美不卡一区二区三区| 久久久精品人体av艺术| 亚洲特级片在线| 婷婷亚洲久悠悠色悠在线播放| 蜜桃一区二区三区在线| 国产精品小仙女| 色婷婷亚洲综合| 日韩视频永久免费| 中文欧美字幕免费| 亚洲黄色在线视频| 蜜臀av性久久久久蜜臀aⅴ流畅| 国产一区在线观看麻豆| 91免费观看在线| 91精品国产综合久久久蜜臀粉嫩 | 亚洲韩国精品一区| 激情综合一区二区三区| caoporm超碰国产精品| 一区在线观看免费| 亚洲妇女屁股眼交7| 久久丁香综合五月国产三级网站| 懂色av中文字幕一区二区三区| 91丨九色丨尤物| 日韩视频免费观看高清完整版在线观看| 精品伦理精品一区| 一区二区欧美在线观看| 极品美女销魂一区二区三区 | 成人黄色电影在线| 欧美视频一区二区| 久久九九国产精品| 亚洲123区在线观看| 丁香啪啪综合成人亚洲小说| 欧美三级欧美一级| 国产精品久线在线观看| 免费久久精品视频| 91成人免费网站| 日本一区二区三区在线不卡| 午夜精品福利一区二区蜜股av| 成人久久久精品乱码一区二区三区| 欧美日韩亚洲综合| 国产精品大尺度| 狠狠狠色丁香婷婷综合久久五月| 欧美日韩卡一卡二| 中文字幕日韩一区| 国产一区二区导航在线播放| 欧美精品乱码久久久久久| 国产精品久久一级| 国产美女视频91| 日韩丝袜情趣美女图片| 亚洲国产一区二区三区 | 国产精品66部| 日韩免费观看高清完整版| 亚洲欧美日韩久久精品| 国产乱国产乱300精品| 91精品国产综合久久精品 | 国产欧美一区二区精品秋霞影院| 图片区小说区国产精品视频| 色综合久久九月婷婷色综合| 久久久精品免费网站| 国产真实乱子伦精品视频| 欧美电影一区二区| 亚洲福利视频三区| 欧美色男人天堂| 亚洲一区在线观看免费观看电影高清| 成人黄色软件下载| 国产精品国产三级国产三级人妇| 国产综合色在线| 久久久精品天堂| 国产成人综合在线| 久久久久久久久久久电影| 久久91精品国产91久久小草 | 精品视频一区三区九区| 亚洲欧美成人一区二区三区| 99re在线视频这里只有精品| 国产精品久久毛片av大全日韩| 成人精品免费网站| 国产精品久久久久久亚洲伦| 成人精品gif动图一区| 中文字幕一区二区三区在线播放| 成人免费电影视频| 亚洲欧美视频一区| 91福利在线播放| 视频在线在亚洲| 日韩精品中午字幕| 欧美日韩国产美| 日日骚欧美日韩| 日韩欧美亚洲国产另类| 加勒比av一区二区| 国产欧美一区二区精品性色 | 欧美一级理论片| 麻豆精品一区二区综合av| 欧美精品一区男女天堂| 国产成人精品免费在线| 亚洲品质自拍视频| 欧美日韩国产一级片| 久草热8精品视频在线观看| 久久精子c满五个校花| 99精品视频一区| 午夜国产精品一区| 精品日韩在线观看| 99riav一区二区三区| 香蕉成人啪国产精品视频综合网| 91精品国产一区二区三区香蕉| 国产精品1024久久| 一区二区三区成人| 久久综合狠狠综合| 日本久久电影网| 精品一区二区三区av|