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

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

?? timer_queue.c

?? 協調器的執行程序
?? C
字號:
//----------------------------------------------------//
//-------Institute Of  Computing Technology-----------//
//------------Chinese Academic  Science---------------//
//-----中國科學院計算技術研究所先進測試技術實驗室-----//
//----------------------------------------------------//

/**
 * @copyright:nbicc_lpp
 * @this is timer queue header
 * @author liulingyi      (lingyiliu@ict.ac.cn)
 *              
 * @data:2005.11.19
 * @version:0.0.1
 * @updata:$
 *
 */
 
#include "timer_queue.h"
//#include "mac.h"
//#include <avr/sfr_defs.h>
//各函數定義 
void  timer3queue_init(Timer_Queue_pointer queue_head)//初始化函數,主要用于設置好T1定時器的比較寄存器和分頻系數,比較寄存器設為0xffff.并初始化隊列第一個元素。
{
	// queue_head=NULL;
}

extern  uint8_t    Timer3_adjustInterval(uint16_t interval); 
extern  uint32_t 	Timer3_acquireInterval(uint16_t interval);
extern  void      Timer3_sethalfsymbol(uint16_t symbols);
extern   void Timer3_intDisable(void);
//extern   Timer_Queue_pointer head_of_timer_queue;

//NOTE:只支持16位定時
//有返回值,主要是因為沒有把queue_head設成全局變量
//傳遞進來的queue_head可能被修改
Timer_Queue_pointer   timer3queue_start(Timer_Queue_pointer queue_head, BYTE timertype, BYTE framedsn, BYTE timer_reason, WORD ticks)//開始一個新的定時任務,主要功能是將當前任務插入到定時隊列中,并設置好相應的值 
{
	//往定時隊列中插入一個新的定時任務,需要設置定時隊列元素的各結構域
       Timer_Queue_pointer   temp;
	Timer_Queue_pointer   p_temp1,p_temp2;
	DWORD  compare_reg;
	    temp=(Timer_Queue_pointer)malloc(sizeof(struct TimerM_timer_queue));
	    temp->next=NULL;
	    temp->timer_reason=timer_reason;
	    temp->timer_type=timertype;
	    temp->framedsn=framedsn;

	 if(queue_head==NULL)	   
	 	{
	 	     //if() 
 	            Timer3_sethalfsymbol(ticks);
		     compare_reg=(((uint32_t)ticks)<<1);
		     //if(compare_reg)	 
		     temp->ticks=(uint16_t)((compare_reg>65535)? (compare_reg-65535):compare_reg);
                   temp->ticksLeft=compare_reg;
 	    	     queue_head=temp;	 
		     //printf("\n***the ticks is %08x\n",temp->ticks);	 
		     
		     //printf("\n***the ticksleft  is %08lx\n",temp->ticksLeft);		 
		}
          else
		{
	              //插入到定時隊列中去,按temp->ticks的順序
                   compare_reg=Timer3_acquireInterval(ticks);
		     temp->ticks=(uint16_t)((compare_reg>65535)? (compare_reg-65535):compare_reg);
                   temp->ticksLeft=compare_reg;
	            p_temp1=queue_head;
                   p_temp2=queue_head;
			while((p_temp2!=NULL)&&((temp->ticksLeft)>(p_temp2->ticksLeft)))
				{
				    p_temp1=p_temp2;
				    p_temp2=p_temp1->next;	 
				}
			if(p_temp2!=queue_head)
				{
			           p_temp1->next=temp;
			           temp->next=p_temp2;
				}
			else
				//為頭節點,需要調整物理定時器
				{
				     Timer3_adjustInterval(temp->ticks);
				     temp->next=queue_head;
				     queue_head=temp;
				}
		}
	return queue_head;
	
}

//傳遞進來的queue_head可能被修改
Timer_Queue_pointer  timer3quere_cancel(Timer_Queue_pointer queue_head, BYTE framedsn,BYTE timer_reason)//取消一個定時任務
{
	//依據取消的framehandle,如果是隊列頭,則需要重新設置比較寄存器的值,否則只需把它從隊列中摘掉即可。
       Timer_Queue_pointer  p_temp1,p_temp2,p_temp3;
	p_temp1=queue_head;
	p_temp2=queue_head;
	p_temp3=queue_head;
	//printf("\ntimer head->framedsn is %d----\n",queue_head->framedsn);
	if(timer_reason!=WAIT_FOR_RESPONSE)
	{
	     while(((p_temp2->framedsn!=framedsn)||(p_temp2->timer_reason!=timer_reason))&&(p_temp2!=NULL))
		 {
		    p_temp1=p_temp2;
		    p_temp2=p_temp2->next;	 
		 }
	}
	else
	{
	     while((p_temp2->timer_reason!=timer_reason)&&(p_temp2!=NULL))
		 {
		    p_temp1=p_temp2;
		    p_temp2=p_temp2->next;	 
		 }	      
	}
	if(p_temp2==NULL)  
		error("\ncannot find an element in the timer_queue\n");
	else
		{
		     p_temp3=p_temp2->next;
		     if(p_temp2==queue_head)
		     	{
	                   if(p_temp2->next==NULL)
	                   	{
	                   	 //printf("\n\n");
	                   	 Timer3_intDisable();
				 //printf("\ntimer3 is disabled\n");		 
	                   	}		 
			     else
			     	{
			     	     //重新設置定時器
			            Timer3_adjustInterval(p_temp3->ticks);
			     	}
			     //取下head節點,釋放空間
			     queue_head=p_temp3;
			     free(p_temp2); 
		     	}
		     else
		     	{
		     	      p_temp1->next=p_temp3;
		     	      free(p_temp2);
		     	}
		}
	return queue_head;
}

//調用的MAC.h中的函數,進行相應的處理。
extern  void mac_timer_task(void);
extern  void timerqueue_adjust(void);
extern  uint16_t mac_timer3queue_getnextinterval(void);


uint16_t  timer3queue_getnextinterval(void)
{
        return mac_timer3queue_getnextinterval();
}
void  timer3queue_interrupt(void)
{
       timerqueue_adjust();
       OS_post(mac_timer_task);      
}


//T1時鐘中斷服務程序。當比較寄存器設置的值和計數器當前值相等時候,產生中斷服務程序。
/*void __attribute((interrupt))   __vector_12(void)
{
   //硬件寄存器的設置,以及定時隊列的處理,重新設置比較寄存器。暫時不摘掉隊列頭元素,作為參數進行傳遞,在mac_timer_task中進行摘除
   
	 //調用mac_timer_task開始進行處理,通過post任務的形式調用。
	 
}
*/

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品一区二区三区免费播放| 99久久国产综合精品女不卡| 一区在线观看视频| 欧美一区二区三区精品| 99热精品国产| 国内成人精品2018免费看| 亚洲综合一区二区精品导航| 国产农村妇女精品| 日韩视频永久免费| 色婷婷国产精品| 国产999精品久久久久久绿帽| 日韩不卡一区二区三区| 一级中文字幕一区二区| 综合久久久久久| 欧美国产一区视频在线观看| 精品日韩成人av| 日韩一区二区在线看| 欧美日韩一区在线| 日本电影亚洲天堂一区| 91婷婷韩国欧美一区二区| 丁香天五香天堂综合| 国产一区不卡视频| 狠狠色狠狠色综合| 久久福利视频一区二区| 日本中文在线一区| 午夜精品久久久| 亚洲成人午夜影院| 亚洲国产精品久久人人爱| 亚洲黄网站在线观看| 亚洲精品亚洲人成人网在线播放| 国产精品视频一区二区三区不卡| 国产午夜亚洲精品午夜鲁丝片| 欧美成人国产一区二区| 欧美一级搡bbbb搡bbbb| 91精品国产91热久久久做人人| 欧美人动与zoxxxx乱| 欧美日韩在线三区| 91麻豆精品国产自产在线 | 国产麻豆日韩欧美久久| 久久er99热精品一区二区| 精品一区二区三区久久| 极品少妇xxxx精品少妇偷拍| 国产一区二区成人久久免费影院| 国产精品一区在线| 国产成人精品三级| 99久久国产综合精品色伊| 91欧美一区二区| 欧美影院一区二区三区| 欧美精品久久久久久久多人混战 | 国产**成人网毛片九色 | 欧美主播一区二区三区| 欧美无乱码久久久免费午夜一区 | 91国在线观看| 欧美三级电影一区| 欧美一级日韩不卡播放免费| 精品欧美一区二区三区精品久久| 2020国产精品久久精品美国| 久久久精品黄色| 国产精品第四页| 亚洲小说春色综合另类电影| 日韩精品一级中文字幕精品视频免费观看 | 精品国产伦一区二区三区观看体验 | 日韩欧美综合在线| 国产亚洲一区字幕| 亚洲少妇30p| 午夜精品一区二区三区电影天堂 | 麻豆成人久久精品二区三区红| 久草这里只有精品视频| av一区二区三区黑人| 欧美在线免费视屏| 日韩一区二区三| 国产欧美日韩在线看| 亚洲激情成人在线| 久久国产尿小便嘘嘘| 99免费精品在线观看| 91精品国产91久久综合桃花| 国产免费久久精品| 午夜一区二区三区在线观看| 国产在线精品一区二区夜色| 色欧美片视频在线观看| 精品国产区一区| 亚洲一区在线观看免费观看电影高清 | 国产日韩av一区二区| 亚洲综合成人在线视频| 国产一区二区三区免费| 欧美在线三级电影| 日本一区二区视频在线观看| 天堂一区二区在线免费观看| 成人午夜视频在线观看| 欧美精选在线播放| 亚洲色图欧洲色图婷婷| 久久er精品视频| 欧美性欧美巨大黑白大战| 国产亚洲精久久久久久| 丝袜亚洲另类欧美| 99免费精品在线观看| 精品粉嫩超白一线天av| 亚洲综合视频在线观看| 成人手机电影网| 精品国产乱码久久久久久蜜臀| 亚洲综合色在线| 粉嫩一区二区三区性色av| 欧美精品色一区二区三区| 中文字幕亚洲一区二区av在线 | 成人精品一区二区三区中文字幕| 337p亚洲精品色噜噜噜| 一区二区三区在线观看视频| 国产精品伊人色| 欧美v日韩v国产v| 性久久久久久久| 欧亚洲嫩模精品一区三区| 国产精品久久久爽爽爽麻豆色哟哟| 久久超碰97中文字幕| 9191成人精品久久| 亚洲午夜电影网| 色老汉一区二区三区| 久久久久国产免费免费| 久久精品国产第一区二区三区| 欧美日韩精品系列| 亚洲香蕉伊在人在线观| 色婷婷亚洲一区二区三区| 中文av一区特黄| 懂色av中文一区二区三区| 久久综合视频网| 久久不见久久见免费视频1| 日韩午夜激情av| 日韩av中文字幕一区二区三区| 欧美老肥妇做.爰bbww视频| 午夜免费欧美电影| 欧美日韩精品福利| 亚洲亚洲人成综合网络| 欧美色中文字幕| 亚洲成人精品在线观看| 欧美精品自拍偷拍动漫精品| 天使萌一区二区三区免费观看| 欧美理论电影在线| 奇米在线7777在线精品 | 亚洲精品va在线观看| 日本韩国欧美国产| 亚洲第一久久影院| 欧美一区永久视频免费观看| 美女www一区二区| 26uuu亚洲综合色| 粉嫩av亚洲一区二区图片| 国产欧美精品一区二区三区四区| 成人小视频免费在线观看| 成人欧美一区二区三区白人| 91视频免费播放| 亚洲福利一区二区三区| 欧美一区二区视频在线观看2022 | 亚洲成人激情综合网| 精品视频在线看| 青青草原综合久久大伊人精品| 精品日韩一区二区三区 | 在线视频一区二区三区| 亚洲国产婷婷综合在线精品| 欧美美女bb生活片| 久久99国产精品麻豆| 国产日韩欧美麻豆| 色激情天天射综合网| 日韩av一区二区三区四区| 久久久.com| 欧美性猛片xxxx免费看久爱| 日本aⅴ精品一区二区三区| 久久久精品影视| 日韩欧美高清dvd碟片| 国产成人丝袜美腿| 亚洲尤物视频在线| 欧美电影免费观看高清完整版在 | 成人福利视频网站| 午夜激情综合网| 久久精品视频一区二区三区| 91麻豆精品秘密| 男人的j进女人的j一区| 亚洲国产精品ⅴa在线观看| 欧美性淫爽ww久久久久无| 韩国欧美一区二区| 亚洲最新在线观看| 亚洲精品一区二区三区福利| 一本大道综合伊人精品热热| 免费观看久久久4p| 亚洲精品网站在线观看| 日韩精品最新网址| 欧美一a一片一级一片| 国产一区二区在线观看视频| 亚洲一线二线三线视频| 国产女主播视频一区二区| 3d成人h动漫网站入口| 91视频免费观看| 国产精品99久久久久久久vr| 天天影视涩香欲综合网| 最好看的中文字幕久久| 日韩女同互慰一区二区| 欧美在线免费观看视频| av午夜精品一区二区三区| 狠狠色综合色综合网络| 午夜天堂影视香蕉久久| 亚洲天堂免费在线观看视频| 精品免费视频.| 91麻豆精品国产|