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

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

?? queue.bak

?? 基于ARM7處理器的中斷與串口在ucos下切換的演示程序
?? BAK
?? 第 1 頁 / 共 2 頁
字號:
** 修改人:
** 日 期:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
#ifndef EN_QUEUE_NDATA
#define EN_QUEUE_NDATA    0
#endif

#if EN_QUEUE_NDATA > 0

        uint16 QueueNData(void *Buf)
{
    uint16 temp;
    
    temp = 0;                                                   /* 隊列無效返回0 */
    if (Buf != NULL)
    {
        OS_ENTER_CRITICAL();
        temp = ((DataQueue *)Buf)->NData;
        OS_EXIT_CRITICAL();
    }
    return temp;
}

#endif

/*********************************************************************************************************
** 函數名稱: QueueSize
** 功能描述: 取得隊列總容量
** 輸 入: Buf:指向隊列的指針
** 輸 出: 隊列總容量
** 全局變量: 無
** 調用模塊: OS_ENTER_CRITICAL,OS_EXIT_CRITICAL
**
** 作 者: 陳明計
** 日 期: 2003年7月2日
**-------------------------------------------------------------------------------------------------------
** 修改人:
** 日 期:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
#ifndef EN_QUEUE_SIZE
#define EN_QUEUE_SIZE    0
#endif

#if EN_QUEUE_SIZE > 0

        uint16 QueueSize(void *Buf)
{
    uint16 temp;
    
    temp = 0;                                                   /* 隊列無效返回0 */
    if (Buf != NULL)
    {
        OS_ENTER_CRITICAL();
        temp = ((DataQueue *)Buf)->MaxData;
        OS_EXIT_CRITICAL();
    }
    return temp;
}

#endif

/*********************************************************************************************************
** 函數名稱: OSQFlush
** 功能描述: 清空隊列
** 輸 入: Buf:指向隊列的指針
** 輸 出: 無
** 全局變量: 無
** 調用模塊: OS_ENTER_CRITICAL,OS_EXIT_CRITICAL
**
** 作 者: 陳明計
** 日 期: 2003年7月2日
**-------------------------------------------------------------------------------------------------------
** 修改人:
** 日 期:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
#ifndef EN_QUEUE_FLUSH
#define EN_QUEUE_FLUSH    0
#endif

#if EN_QUEUE_FLUSH > 0

        void QueueFlush(void *Buf)
{
    DataQueue *Queue;
    
    if (Buf != NULL)                                                /* 隊列是否有效 */
    {                                                               /* 有效         */
        Queue = (DataQueue *)Buf;
        OS_ENTER_CRITICAL();
        Queue->Out = Queue->Buf;
        Queue->In = Queue->Buf;
        Queue->NData = 0;                                           /* 數據數目為0 */
        OS_EXIT_CRITICAL();
    }
}

#endif

int QueueWriteBlock(void * Buf, QUEUE_DATA_TYPE * Data, int WriteDataLen, BOOLEAN LessWrite)
{
    uint8 err;
    DataQueue *Queue;
	int i;

    err = NOT_OK;
    if (Buf != NULL)                                                    /* 隊列是否有效 */
    {
        Queue = (DataQueue *)Buf;
        
        OS_ENTER_CRITICAL();
        
        if ((Queue->NData + WriteDataLen)<= Queue->MaxData)                              /* 隊列是否滿  */
        {                                                               /* 不滿        */
            i = 0;
			while (i < WriteDataLen)
            {
                Queue->In[0] = *(Data+i);
				i++;
				Queue->In++;
				if (Queue->In >= Queue->End)
                {
                     Queue->In = Queue->Buf;
                }
			}
			Queue->NData = Queue->NData + WriteDataLen;
			err = WriteDataLen;
			myprintf("inmaxdata\r\n");
        }
        else if (LessWrite)
        {                                                               /* 滿           */
            i = 0;
			while (i < (Queue->MaxData - Queue->NData))
			{
                Queue->In[0] = *(Data+i);
				i++;
				Queue->In++;
			    if (Queue->In >= Queue->End)
                {
                     Queue->In = Queue->Buf;
                }
			}
			Queue->NData = Queue->MaxData;
			err = Queue->MaxData - Queue->NData;
			myprintf("inlessdata\r\n");
        }
		else
		{
            err = OS_Q_FULL;
            if (Queue->WriteFull != NULL)                               /* 調用用戶處理函數 */
            {
                err = Queue->WriteFull(Queue, Data, Q_WRITE_MODE);
            }
			myprintf("inerrfull\r\n");
		}
        OS_EXIT_CRITICAL();
    }
    return err;

}
int QueueReadBlock(QUEUE_DATA_TYPE * Ret, void * Buf, int ReadDataLen, BOOLEAN LessRead)
{
    uint8 err;
    DataQueue *Queue;
	int i;

    err = NOT_OK;
    if (Buf != NULL)                                            /* 隊列是否有效 */
    {                                                           /* 有效 */
        Queue = (DataQueue *)Buf;
        
        OS_ENTER_CRITICAL();
        
        if (Queue->NData >= ReadDataLen)                                   /* 隊列是否為空 */
        {                                                       /* 不空         */
            i = 0;
			while (i < ReadDataLen)
            {
                *(Ret + i) = Queue->Out[0];                               /* 數據出隊     */
                Queue->Out++;                                       /* 調整出隊指針 */
                if (Queue->Out >= Queue->End)
                {
                    Queue->Out = Queue->Buf;
                }
				i++;
			}
            Queue->NData = Queue->NData - ReadDataLen;                                     /* 數據減少      */
            err = ReadDataLen;
        }
		else if (LessRead)
		{
            i = 0;
			while (i < Queue->NData)
            {
                *(Ret + i) = Queue->Out[0];                               /* 數據出隊     */
                Queue->Out++;                                       /* 調整出隊指針 */
                if (Queue->Out >= Queue->End)
                {
                    Queue->Out = Queue->Buf;
                }
				i++;
			}
            Queue->NData = 0;                                     /* 數據減少      */
            err = Queue->NData;
		}
        else
        {                                                       /* 空              */
            err = QUEUE_EMPTY;
            if (Queue->ReadEmpty != NULL)                       /* 調用用戶處理函數 */
            {
                err = Queue->ReadEmpty(Ret, Queue);
            }
        }
        OS_EXIT_CRITICAL();
    }
    return err;
}

/*********************************************************************************************************
** 函數名稱 :IRQ_Eint0()
** 函數功能 :外部中斷0 EINT0服務程序口。
** 入口參數 :無。
** 出口擦數 :無。
*********************************************************************************************************
*/

void Eint0_Exception(void)
{
	uint32 i;
	uint8  tempchar;
	DataQueue *Queue;
	
	        Queue = (DataQueue *)RcvSendBuf;

	EXTINT = 0x01;
	tempchar = ((IO0PIN & 0x00600000) >> 21)|  //P0.22 P0.21
              ((IO1PIN & 0x00040000) >> 16)|  //P1.18
              ((IO0PIN & 0x0E000000) >> 22)|  //P0.27 P0.26 P0.25
              ((IO1PIN & 0x00020000) >> 11)|  //P1.17
              ((IO0PIN & 0x10000000) >> 21);   //P0.28

	//QueueWrite((void *)RcvSendBuf, tempchar);

	    //if (Queue->NData < Queue->MaxData)                              /* 隊列是否滿  */
        //{                                                               /* 不滿        */
            Queue->In[0] = tempchar;                                        /* 數據入隊    */
            Queue->In++;                                                /* 調整入隊指針*/
            if (Queue->In >= Queue->End)
            {
                Queue->In = Queue->Buf;
            }
            Queue->NData++;                                             /* 數據增加    */
        //}
	
	
	VICVectAddr = 0; 
	
	/* 	等待外部中斷信號恢復為高電平
	 	若信號保持為低電平,中斷標志會一直置位。*/
	//while ((EXTINT & 0x01) != 0)
	//{
		EXTINT = 0x01;				/* 清除EINT0中斷標志		*/
	//}
	
	VICVectAddr = 0;				/* 向量中斷結束				*/
}

/*********************************************************************************************************
**                            End Of File
********************************************************************************************************/

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
caoporn国产精品| 国产成人欧美日韩在线电影| 日本午夜一本久久久综合| 亚洲欧美一区二区视频| 国产精品第四页| 亚洲免费色视频| 亚洲午夜在线视频| 亚洲成人www| 久久丁香综合五月国产三级网站| 久久国产免费看| 成人免费精品视频| 在线观看中文字幕不卡| 制服丝袜av成人在线看| 久久奇米777| 亚洲天天做日日做天天谢日日欢| 亚洲激情自拍偷拍| 日本女优在线视频一区二区 | 成人久久久精品乱码一区二区三区 | 日韩精品1区2区3区| 天堂va蜜桃一区二区三区| 麻豆高清免费国产一区| 国产成人av影院| 99精品久久免费看蜜臀剧情介绍| 欧美在线影院一区二区| 欧美tickling挠脚心丨vk| 中国色在线观看另类| 亚洲一区自拍偷拍| 国产一区在线不卡| 在线观看亚洲一区| 国产色婷婷亚洲99精品小说| 亚洲色图另类专区| 黑人巨大精品欧美一区| 日本韩国精品在线| 2023国产精华国产精品| 亚洲激情五月婷婷| 国产在线一区观看| 欧美三级电影一区| 亚洲欧美一区二区视频| 久久se这里有精品| 欧美中文字幕亚洲一区二区va在线| 精品国产髙清在线看国产毛片| 亚洲精品中文字幕在线观看| 美国欧美日韩国产在线播放| 在线观看欧美黄色| 国产精品久久久久精k8| 黑人巨大精品欧美一区| 7777精品伊人久久久大香线蕉的 | 久久不见久久见免费视频1| 一本大道久久a久久综合婷婷| 2024国产精品视频| 青青草97国产精品免费观看| 91豆麻精品91久久久久久| 久久你懂得1024| 麻豆极品一区二区三区| 欧美日韩精品久久久| 亚洲欧美日韩在线| 福利视频网站一区二区三区| 欧美变态凌虐bdsm| 日本aⅴ免费视频一区二区三区| 在线免费观看日本欧美| 一区二区三区在线视频观看58| 粉嫩一区二区三区性色av| 久久午夜老司机| 激情六月婷婷综合| 久久久久久久久久电影| 久久91精品久久久久久秒播| 91精品国产综合久久久久| 亚洲成人免费观看| 欧美色图第一页| 亚洲图片欧美综合| 欧美吞精做爰啪啪高潮| 亚洲小说春色综合另类电影| 欧美色视频一区| 三级欧美韩日大片在线看| 欧美另类一区二区三区| 亚洲123区在线观看| 51精品久久久久久久蜜臀| 日韩中文字幕av电影| 这里是久久伊人| 另类小说视频一区二区| 久久一区二区三区国产精品| 国产成人精品免费网站| 中文字幕+乱码+中文字幕一区| 国产91丝袜在线18| 亚洲少妇中出一区| 欧美在线观看视频在线| 日本欧美韩国一区三区| 久久久久久久免费视频了| 成人国产精品免费| 亚洲综合色噜噜狠狠| 欧美一区三区二区| 国产高清在线精品| 夜夜嗨av一区二区三区| 欧美一区二区三区白人| 国产一区二区三区综合| 国产精品国产三级国产aⅴ入口| 欧美在线观看视频一区二区| 麻豆精品一区二区| 国产精品灌醉下药二区| 色狠狠桃花综合| 激情综合网最新| 亚洲视频免费观看| 日韩免费高清电影| 成人教育av在线| 日本亚洲最大的色成网站www| 久久久久久久久久久久久女国产乱| 99re热视频这里只精品| 久久超碰97中文字幕| 亚洲乱码国产乱码精品精可以看| 91精品在线观看入口| av不卡一区二区三区| 蜜桃av一区二区| 亚洲人成网站影音先锋播放| 欧美一级电影网站| 一本色道久久综合精品竹菊| 美女在线视频一区| 亚洲小说春色综合另类电影| 国产日产欧美一区| 日韩一级片在线播放| 91在线视频观看| 国产一级精品在线| 日韩激情一区二区| 亚洲综合男人的天堂| 欧美激情在线看| 精品福利在线导航| 欧美日韩电影一区| 色婷婷亚洲婷婷| 成人av一区二区三区| 国产在线观看一区二区| 亚洲一区免费观看| 亚洲欧洲制服丝袜| 最新热久久免费视频| 国产视频911| 久久婷婷一区二区三区| 亚洲欧美日韩综合aⅴ视频| 久久久午夜精品| 欧美精品一区二区三区很污很色的| 欧美色电影在线| 在线亚洲一区二区| 在线精品国精品国产尤物884a| eeuss鲁一区二区三区| 国模冰冰炮一区二区| 蜜臀久久久久久久| 日本午夜一本久久久综合| 日韩中文字幕区一区有砖一区| 亚洲成av人综合在线观看| 亚洲一区在线播放| 亚洲国产成人91porn| 亚洲一区成人在线| 亚洲国产精品一区二区www| 一区二区三区日本| 亚洲成人在线网站| 偷拍日韩校园综合在线| 婷婷中文字幕综合| 日韩高清不卡在线| 久久国产成人午夜av影院| 久久成人麻豆午夜电影| 国产精品一级在线| 成人美女在线视频| 日本电影欧美片| 欧美日韩成人高清| 欧美大片国产精品| 欧美激情一二三区| 亚洲欧美福利一区二区| 亚洲成人自拍网| 激情久久五月天| av不卡在线播放| 欧美日韩一区二区三区免费看| 欧美三电影在线| 欧美精品一区二| 国产精品久久久久久久久免费桃花| 国产精品久99| 秋霞电影网一区二区| 国产99精品在线观看| 欧美视频一区在线观看| 精品国产伦一区二区三区观看方式 | 国产99一区视频免费| 色综合夜色一区| 欧美一区二区三区小说| 久久久www免费人成精品| 亚洲靠逼com| 精品一区二区国语对白| 91小视频在线| 4hu四虎永久在线影院成人| 亚洲国产经典视频| 天天综合天天综合色| 国产精品2024| 91精品国产乱码久久蜜臀| 欧美国产一区二区| 亚洲成人av资源| 丁香激情综合五月| 日韩欧美亚洲国产另类| 一区二区三区四区视频精品免费| 久草在线在线精品观看| 欧美mv日韩mv国产网站app| 亚洲视频一区二区在线观看| 狠狠久久亚洲欧美| 欧美日韩在线不卡| 国产精品国产a| 国产制服丝袜一区|