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

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

?? sch.c

?? 一個多任務調度器
?? C
字號:
/*------------------------------------------------------------------*-
版權說明:
		1、此程序應稱作“時間觸發多任務調度器”。
		
		2、程序摘自《時間觸發嵌入式系統設計模式
			使用8051系統微控制器開發可靠應用》。
			在本站好書推薦中有對此書的說明。
			
		3、原作者在書中對版權進行了說明:
			只要購買了本書就可以使用書中源程序。
			
		4、在項目中多次用到此程序,感覺很不錯。
			此處提供的調度器程序是我簡化過的。

移植說明:
		1、代碼全部用標準C語言編寫,可以方便的插
			入到項目中。
			
		2、內核唯一需要硬件支持的是定時器,需要開
			一個定時器,為內核提供調度周期信號。

-*------------------------------------------------------------------*/

#include "AFA.h"

s_task  SCH_task_array[SCH_MAX_TASKS];	/*定義任務隊列*/

/*------------------------------------------------------------------*-
	SCH_Init_Time()
	調度器初始化
	
	1、準備調度器數據結構并且設置定時器以所需的
		頻率中斷。
	2、必須在使用調度器之前調用這個函數。
-*------------------------------------------------------------------*/
void SCH_Init_Time(void)
 {
	for (uchar i=0; i< SCH_MAX_TASKS; i++)/*清空任務隊列*/  //sch_max_tasks=6;
         {					
		SCH_Delete_Task(i);
	 }

	OCR1A = 1250;				/*計數周期為10mS,F=1M*/
	TIMSK1 = 0x02;				/*比較中斷A允許	*/
	SREG = 0x80;
	TCCR1A = 0x00;
	TCCR1B = 0x08;				/*運行于CTC模式*/
	TCCR1B |= 0x02;				/*設置8分頻*/
}

/*------------------------------------------------------------------*-
	SCH_Start()
	啟動調度器
	
	1、啟動調度器,也就允許調度器運行。
	2、主要是允許中,因為任務狀態是在中斷中
		刷新的。
-*------------------------------------------------------------------*/
void SCH_Start(void)
{
   SEI();		/*開全局中斷*/
}

/*------------------------------------------------------------------*-
	SCH_Add_Task()
	任務添加
	1、將任務添加到任務隊列中,并設置執行條件。
	2、任務添加成功將返回,任務被添加的位置。
	3、任務添加失敗將返回0。
	4、變量說明:
		pFunction	函數指針,指向要添加的函數。
		delay		任務運行等待時間。
		period		任務運行周期時間,此處用于需要
				周期性運行的任務。
				如只要運行一次,則此值應為0
-*------------------------------------------------------------------*/
uchar SCH_Add_Task(void (* pFunction)(), uint delay, uint period)
 {
	static uchar k=0;
	while((SCH_task_array[k].task != 0) && (k < SCH_MAX_TASKS))  //指針為0就表示沒有任務,則加載
         {                                                           //   不為0時就已有, 則退出
           k++;
         }
	if (k == SCH_MAX_TASKS)/*檢查任務隊列溢出*/	
        return 0;	       /*溢出處理*/
         			
	SCH_task_array[k].task		= pFunction;	/*加載任務*/
	SCH_task_array[k].delay		= delay;        /*任務運行等待時間*/
	SCH_task_array[k].period	= period;       /*任務運行周期時間,此處用于需要
				                          周期性運行的任務。
				                          如只要運行一次,則此值應為0
                                                        */
	SCH_task_array[k].run		= 0x00;          /*停止執行*/ 
	
	return k;			/*返回任務ID號*/
}

/*------------------------------------------------------------------*-
	SCH_Update()
	任務刷新
	1、定時器T1,A組比較中斷。  10ms中斷一次
	2、對任務定時時間進行刷新。
	3、任務定時時間到,設置任務運行標志。
-*------------------------------------------------------------------*/

#pragma vector=TIMER1_OVF_vect
__interrupt void SCH_Update(void) 
{
	for(static uchar i=0; i<SCH_MAX_TASKS; i++)
         {
		if (SCH_task_array[i].task) /*檢測任務是否存在*/
                 {						
		        if(SCH_task_array[i].delay == 0) /*任務時間是否到*/
                         {
                                SCH_task_array[i].run ++;	/*設置運行標志	*/
				
				if(SCH_task_array[i].period) /*是否為循環任務*/
                                 {				
				   SCH_task_array[i].delay = SCH_task_array[i].period;/*重載任務定時器*/
				 }				
			 }
                        else
                         {				
			   SCH_task_array[i].delay --;/*刷新任務等待時間*/
			 }
		}
	}
}

/*------------------------------------------------------------------*-
	SCH_Dispatch_Tasks()
	任務調度
	
	1、調度程序,當任務需要運行時,由本程序調用。
	2、這個函數必須重復運行。
-*------------------------------------------------------------------*/
void SCH_Dispatch_Tasks(void) 
 {
	for( static uchar j=0; j<SCH_MAX_TASKS; j++)       /*查詢任務隊列*/
         {					
		if (SCH_task_array[j].run > 0)             /*運行任務*/
                 {
			(*SCH_task_array[j].task)();
			SCH_task_array[j].run --;	   /*運行標志自減*/
			if (SCH_task_array[j].period == 0) /*刪除單周期任務*/
                         {			
				SCH_Delete_Task(j);
			 }
		 }
	}
}

/*------------------------------------------------------------------*-
	SCH_Delete_Task()
	任務刪除
	1、刪除指定任務。
	2、要刪除任務的ID,此ID在任務添加時給出。
-*------------------------------------------------------------------*/
void SCH_Delete_Task(uchar task_id)/*清除任務*/
{
	SCH_task_array[task_id].task	= 0x00;		
	SCH_task_array[task_id].delay	= 0x00;
	SCH_task_array[task_id].period	= 0x00;
	SCH_task_array[task_id].run	= 0x00;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人性生交大片免费看视频在线| 欧美吻胸吃奶大尺度电影 | 亚洲在线成人精品| 丝袜诱惑制服诱惑色一区在线观看| 蜜臀精品一区二区三区在线观看| 国产盗摄精品一区二区三区在线| 在线观看亚洲专区| 久久久噜噜噜久久人人看 | 国产精品久久久久影视| 五月激情综合网| 丰满少妇在线播放bd日韩电影| 欧美调教femdomvk| 国产三区在线成人av| 亚洲成人免费电影| 粉嫩蜜臀av国产精品网站| 欧美日韩电影一区| 国产丝袜在线精品| 日本中文在线一区| 色视频成人在线观看免| 久久伊人中文字幕| 日韩成人一级片| 91麻豆123| 久久久久国产一区二区三区四区| 天堂精品中文字幕在线| 波多野结衣一区二区三区| 欧美α欧美αv大片| 亚洲第一福利视频在线| 成人18精品视频| 国产亚洲欧美激情| 麻豆免费看一区二区三区| 欧美视频三区在线播放| 亚洲欧洲日本在线| 国产成人免费视频网站高清观看视频 | 五月婷婷久久丁香| 色哟哟日韩精品| 亚洲色图视频免费播放| a亚洲天堂av| 国产精品沙发午睡系列990531| 国内精品免费**视频| 日韩欧美123| 蜜臀av性久久久久蜜臀av麻豆| 欧美一区二区三区思思人| 日本视频中文字幕一区二区三区| 欧美日韩亚洲高清一区二区| 亚洲不卡一区二区三区| 欧美高清视频www夜色资源网| 亚洲最大的成人av| 精品视频在线视频| 亚洲制服欧美中文字幕中文字幕| 91国产免费看| 视频一区视频二区中文字幕| 这里只有精品免费| 日韩高清电影一区| 88在线观看91蜜桃国自产| 亚洲综合清纯丝袜自拍| 欧美午夜宅男影院| 日韩综合小视频| 欧美一区二区播放| 久久电影国产免费久久电影| www成人在线观看| 国产精品综合视频| 亚洲国产精品成人综合色在线婷婷| 成人免费视频一区| 中文字幕视频一区二区三区久| 成人成人成人在线视频| 亚洲国产日日夜夜| 欧美岛国在线观看| 国产精品一二三| 亚洲精品免费在线| 欧美日韩国产精品成人| 精品一区二区三区欧美| 欧美国产精品专区| 91高清在线观看| 亚洲18女电影在线观看| 精品日韩一区二区三区免费视频| 国产成人av电影在线| 亚洲特级片在线| 欧美一区二区播放| 成人在线综合网| 午夜天堂影视香蕉久久| 亚洲成人av福利| 久久亚洲精品小早川怜子| 日本福利一区二区| 极品少妇一区二区三区精品视频 | 欧美色网站导航| 九色porny丨国产精品| 国产精品国产三级国产aⅴ入口| 色综合久久综合| 国产一区二区女| 夜夜嗨av一区二区三区网页| 26uuu另类欧美亚洲曰本| 在线观看精品一区| 国产一区在线看| 婷婷综合在线观看| 亚洲日本电影在线| 久久久久久99久久久精品网站| 欧美日韩第一区日日骚| 99精品视频一区二区三区| 麻豆国产精品一区二区三区 | 久久嫩草精品久久久精品| 91成人在线免费观看| 懂色av一区二区在线播放| 蜜桃在线一区二区三区| 亚洲一区二区成人在线观看| 久久精品一二三| 日韩免费看的电影| 欧美人伦禁忌dvd放荡欲情| 91丨porny丨首页| 成人免费高清视频| 国产一区二区免费看| 免费在线观看成人| 亚洲一卡二卡三卡四卡五卡| 国产精品久久久久久久久动漫 | 日本美女一区二区| 亚洲激情欧美激情| 国产精品久99| 国产欧美日韩久久| 欧美成人高清电影在线| 欧美一区二区三区性视频| 欧美亚洲国产bt| 欧美日韩中文精品| 欧美日韩黄色影视| 欧美日韩午夜在线视频| 欧美少妇性性性| 欧美午夜精品免费| 欧美亚洲禁片免费| 欧洲精品视频在线观看| 欧美中文字幕久久| 欧美在线三级电影| 欧美三区免费完整视频在线观看| 欧美做爰猛烈大尺度电影无法无天| 99久久99久久精品免费看蜜桃| 不卡欧美aaaaa| 91性感美女视频| 色播五月激情综合网| 欧美中文字幕久久| 欧美群妇大交群中文字幕| 欧美电影影音先锋| 欧美第一区第二区| 国产网红主播福利一区二区| 国产色婷婷亚洲99精品小说| 欧美国产视频在线| 亚洲精品免费一二三区| 亚洲国产精品一区二区www在线 | 国产精品一区二区在线播放| 国产成人在线观看免费网站| 国产白丝网站精品污在线入口| 国产精品羞羞答答xxdd| 99久久伊人久久99| 色就色 综合激情| 日韩欧美你懂的| 国产精品久久久久影院| 亚洲线精品一区二区三区| 视频一区二区不卡| 国产精品一区二区视频| 色一情一乱一乱一91av| 91.com在线观看| 国产清纯在线一区二区www| 亚洲精品午夜久久久| 日本视频一区二区| 97se亚洲国产综合自在线| 777亚洲妇女| 国产精品卡一卡二| 天堂蜜桃一区二区三区| 粉嫩久久99精品久久久久久夜| 欧美亚洲动漫精品| 久久婷婷久久一区二区三区| 一区二区三区中文字幕电影| 精品写真视频在线观看| 91污片在线观看| 欧美不卡一区二区三区| 亚洲精选视频在线| 国产一区二区三区四区五区入口 | 国产精品理论片在线观看| 日韩成人av影视| 91亚洲男人天堂| 久久久亚洲精品一区二区三区 | 国产午夜精品在线观看| 五月天丁香久久| 色婷婷久久久亚洲一区二区三区| 26uuu亚洲| 日本亚洲三级在线| 色老汉一区二区三区| 欧美国产日产图区| 久88久久88久久久| 欧美日韩国产另类不卡| 亚洲精品免费在线| 成人一区二区三区视频在线观看| 日韩一区二区三区视频在线| 伊人一区二区三区| 色88888久久久久久影院野外| 国产三级一区二区| 精品在线亚洲视频| 欧美一二三区精品| 亚洲va韩国va欧美va精品| 色综合久久综合网欧美综合网 | 成人av资源站| 国产丝袜在线精品| 国产一区欧美一区| 精品国产免费人成在线观看|