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

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

?? task.bak

?? 一個基于arm的
?? BAK
字號:
/**********************************************************************************************
本程序只供學習使用,不得用于其它任何用途,否則后果自負。

  Task.c file

  作者:Computer-lov
  建立日期:2006-5-8
  修改日期:2006-5-15
  版本:V1.0
  版權所有,盜版必究。
  任何技術問題可到我的博客上留言:    http://computer00.21ic.org
  Copyright(C) Computer-lov 2006-2016
  All rights reserved
**********************************************************************************************/


#include <ADuC7026.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_LED4();  //使能LED4
 
 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_LED4();break;    //如果是按鍵1按下,則點亮LED4
	   case KEY2: OFF_LED4();break;   //如果是按鍵2按下,則熄滅LED4
	   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_LED5();
 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_LED5();break;    //如果是按鍵3按下,則點亮LED5
	   case KEY4: OFF_LED5();break;   //如果是按鍵4按下,則熄滅LED5
	   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_LED6();
 while(1)
  {
   OSRequestDevice(PrinterDeviceAddr,0);    //申請使用打印機
   prints("HaHa,Task3! ",1);  //顯示信息
   OSFreeDevice(PrinterDeviceAddr);       //釋放打印機
   OSTaskDelay(50);           //延時50個時鐘節拍
   ON_LED6();                 //開LED6
   OSRequestDevice(PrinterDeviceAddr,0);    //申請使用打印機
   prints("HaHa,Task3! ",1);  //顯示信息
   OSFreeDevice(PrinterDeviceAddr);       //釋放打印機
   OSTaskDelay(50);           //延時50個時鐘節拍
   OFF_LED6();                //關LED6
  }
}
//////////////////////////////////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_LED7();
 while(1)
  {
   OSRequestDevice(PrinterDeviceAddr,0);    //申請使用打印機
   prints("HaHa,Task4! ",1);      //顯示信息
   OSFreeDevice(PrinterDeviceAddr);           //釋放打印機
   OSTaskDelay(100);              //延時100個時鐘節拍
   ON_LED7();                     //開LED7
   OSRequestDevice(PrinterDeviceAddr,0);     //申請使用打印機
   prints("HaHa,Task4! ",1);      //顯示信息
   OSFreeDevice(PrinterDeviceAddr);     //釋放打印機
   OSTaskDelay(100);              //延時100個時鐘節拍
   OFF_LED7();                    //關LED7
  }
}
//////////////////////////////////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(5);   //延遲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一区二区三区免费野_久草精品视频
91在线观看一区二区| 国产精品视频你懂的| 国产精品色眯眯| 天堂精品中文字幕在线| 99久久国产综合精品色伊| 日韩免费观看高清完整版| 一区二区高清在线| av在线不卡免费看| 久久久九九九九| 蜜臀久久久99精品久久久久久| 99热这里都是精品| 国产精品久久久久久久裸模| 国内精品不卡在线| 欧美一区二区三区在线看| 一区二区三区美女| 94-欧美-setu| 中文在线资源观看网站视频免费不卡| 极品美女销魂一区二区三区| 欧美精品免费视频| 亚洲va天堂va国产va久| 欧美三级资源在线| 亚洲激情成人在线| 91蝌蚪porny成人天涯| 日韩毛片视频在线看| 成人美女视频在线观看18| 欧美高清在线一区| av电影在线观看不卡| 中文字幕在线观看一区二区| 不卡欧美aaaaa| 亚洲天堂福利av| 91官网在线观看| 亚洲最大的成人av| 欧美日韩一区二区三区在线| 亚洲高清免费观看| 日韩欧美一区在线| 蜜桃久久av一区| 亚洲精品在线观看网站| 国产精品一区二区三区99| 亚洲国产岛国毛片在线| 99精品国产视频| 亚洲午夜免费福利视频| 欧美高清性hdvideosex| 久久精品久久综合| 久久精品视频免费| av一区二区三区在线| 亚洲一区二区三区国产| 777久久久精品| 黄网站免费久久| 国产精品婷婷午夜在线观看| 91玉足脚交白嫩脚丫在线播放| 亚洲制服丝袜在线| 日韩亚洲欧美一区| 成人免费高清视频| 亚洲国产精品自拍| 久久综合色8888| 91亚洲午夜精品久久久久久| 五月激情综合色| 国产视频一区二区三区在线观看| 成人高清免费在线播放| 亚洲成人av福利| 久久精品男人的天堂| 一本大道综合伊人精品热热| 蜜桃av一区二区三区| 国产精品视频在线看| 欧美日韩国产综合一区二区三区| 国内久久精品视频| 亚洲成av人片| 国产精品―色哟哟| 日韩女优av电影| 91美女福利视频| 国产一区二区三区免费观看| 中文字幕亚洲精品在线观看| 欧美肥妇毛茸茸| 99精品热视频| 国产一区二区日韩精品| 亚洲一区国产视频| 国产精品萝li| 欧美不卡在线视频| 一本色道综合亚洲| 国产激情视频一区二区三区欧美 | 亚洲午夜激情av| 欧美成人猛片aaaaaaa| 91久久奴性调教| 国产精品18久久久久久vr| 日韩一区精品视频| 亚洲视频免费看| 国产亚洲精品资源在线26u| 3d动漫精品啪啪一区二区竹菊| 波多野结衣中文字幕一区二区三区 | 国产成人精品亚洲777人妖| 亚洲成人免费看| 亚洲欧洲综合另类在线| 国产偷国产偷亚洲高清人白洁| 欧美巨大另类极品videosbest | 亚洲欧美日韩久久| 国产欧美1区2区3区| 日韩精品一区二区三区在线播放| 欧美三级一区二区| 99精品热视频| 97久久超碰国产精品| 丁香激情综合五月| 夫妻av一区二区| 国产超碰在线一区| 国产在线视频一区二区三区| 理论片日本一区| 免费在线观看一区二区三区| 五月天激情小说综合| 亚洲国产成人av| 婷婷久久综合九色综合伊人色| 亚洲激情自拍偷拍| 亚洲一区二区三区免费视频| 洋洋成人永久网站入口| 亚洲午夜精品17c| 亚洲成精国产精品女| 午夜私人影院久久久久| 午夜精品视频一区| 日本不卡高清视频| 日韩精品久久久久久| 男女男精品视频网| 国产主播一区二区| 国产成人在线观看免费网站| 成人在线视频一区| jlzzjlzz国产精品久久| 91免费版在线| 欧美视频精品在线观看| 欧美丰满少妇xxxbbb| 精品日产卡一卡二卡麻豆| 久久久国产一区二区三区四区小说 | 亚洲欧洲精品一区二区三区| 国产精品欧美极品| 一区二区三区高清| 丝袜美腿亚洲一区| 看电影不卡的网站| 成人免费黄色大片| 色噜噜狠狠色综合中国| 欧美性欧美巨大黑白大战| 4438亚洲最大| 国产欧美日韩在线视频| 亚洲丝袜精品丝袜在线| 亚洲在线观看免费视频| 蜜臀91精品一区二区三区| 国产成人午夜片在线观看高清观看| 99国内精品久久| 91精品久久久久久久99蜜桃| 国产亚洲精品超碰| 一区二区三区四区乱视频| 蜜桃视频在线一区| 91色综合久久久久婷婷| 91麻豆精品国产91久久久资源速度 | 欧美一区欧美二区| 国产午夜精品一区二区三区视频 | 精品视频1区2区3区| 日韩一区二区三区四区五区六区| 欧美精品一区视频| 亚洲卡通欧美制服中文| 蜜臂av日日欢夜夜爽一区| 97aⅴ精品视频一二三区| 日韩三级在线观看| 亚洲精品免费电影| 国产精品中文有码| 91精品婷婷国产综合久久竹菊| 国产精品久久久久久久久免费桃花 | 国产一区二区在线电影| 欧美性生活影院| 中文一区二区完整视频在线观看| 亚洲成人自拍偷拍| 91免费视频网址| 久久久亚洲精品石原莉奈| 亚洲午夜精品17c| 99精品欧美一区二区三区小说| 精品黑人一区二区三区久久| 亚洲综合清纯丝袜自拍| 成人国产精品免费观看| 久久久亚洲高清| 美国十次综合导航| 欧美丝袜第三区| 亚洲视频免费看| 大白屁股一区二区视频| 精品久久久久久久人人人人传媒| 亚洲大片精品永久免费| 色综合天天综合网天天看片| 国产亚洲污的网站| 精品一区二区三区免费视频| 精品视频在线看| 夜夜嗨av一区二区三区四季av| 成人开心网精品视频| 久久久国产精品午夜一区ai换脸| 久久99热99| 欧美va亚洲va| 美女爽到高潮91| 日韩视频永久免费| 免费成人性网站| 制服丝袜国产精品| 日本不卡一区二区| 777xxx欧美| 蜜臀久久99精品久久久久宅男 | 欧美日韩不卡在线| 午夜在线成人av| 欧美精品 国产精品| 日韩av一区二区在线影视|