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

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

?? serial.c

?? MCS-51的一個Free小型操作系統,在KeilC中下編譯工作
?? C
字號:
/*
	FreeRTOS.org V4.1.3 - Copyright (C) 2003-2006 Richard Barry.

	This file is part of the FreeRTOS.org distribution.

	FreeRTOS.org is free software; you can redistribute it and/or modify
	it under the terms of the GNU General Public License as published by
	the Free Software Foundation; either version 2 of the License, or
	(at your option) any later version.

	FreeRTOS.org is distributed in the hope that it will be useful,
	but WITHOUT ANY WARRANTY; without even the implied warranty of
	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
	GNU General Public License for more details.

	You should have received a copy of the GNU General Public License
	along with FreeRTOS.org; if not, write to the Free Software
	Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA

	A special exception to the GPL can be applied should you wish to distribute
	a combined work that includes FreeRTOS.org, without being obliged to provide
	the source code for any proprietary components.  See the licensing section 
	of http://www.FreeRTOS.org for full details of how and when the exception
	can be applied.

	***************************************************************************
	See http://www.FreeRTOS.org for documentation, latest information, license 
	and contact details.  Please ensure to read the configuration and relevant 
	port sections of the online documentation.
	***************************************************************************
*/

/*
Changes from V3.0.0
	+ ISRcode removed. Is now pulled inline to reduce stack-usage.

Changes from V3.0.1
*/

/* BASIC INTERRUPT DRIVEN SERIAL PORT DRIVER. */

/* Scheduler header files. */
#include "FreeRTOS.h"
#include "task.h"
#include "queue.h"

#include "serial.h"

/* Hardware pin definitions. */
#define serTX_PIN				bTRC6
#define serRX_PIN				bTRC7

/* Bit/register definitions. */
#define serINPUT				( 1 )
#define serOUTPUT				( 0 )
#define serINTERRUPT_ENABLED 	( 1 )

/* All ISR's use the PIC18 low priority interrupt. */
#define	serLOW_PRIORITY			( 0 )

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

/* Queues to interface between comms API and interrupt routines. */
xQueueHandle xRxedChars; 
xQueueHandle xCharsForTx;

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

xComPortHandle xSerialPortInitMinimal( unsigned portLONG ulWantedBaud, unsigned portCHAR ucQueueLength )
{
	unsigned portSHORT usSPBRG;
	
	/* Create the queues used by the ISR's to interface to tasks. */
	xRxedChars = xQueueCreate( ucQueueLength, ( unsigned portBASE_TYPE ) sizeof( portCHAR ) );
	xCharsForTx = xQueueCreate( ucQueueLength, ( unsigned portBASE_TYPE ) sizeof( portCHAR ) );

	portENTER_CRITICAL();

	/* Setup the IO pins to enable the USART IO. */
	serTX_PIN	= serINPUT;		// YES really! See datasheet
	serRX_PIN	= serINPUT;

	/* Set the TX config register. */
	TXSTA = 0b00100000;
		//	  ||||||||--bit0: TX9D	= n/a
		//	  |||||||---bit1: TRMT	= ReadOnly
		//	  ||||||----bit2: BRGH	= High speed
		//	  |||||-----bit3: SENDB = n/a
		//	  ||||------bit4: SYNC	= Asynchronous mode
		//	  |||-------bit5: TXEN	= Transmit enable
		//	  ||--------bit6: TX9	= 8-bit transmission
		//	  |---------bit7: CSRC	= n/a

	/* Set the Receive config register. */
	RCSTA = 0b10010000;
		//	  ||||||||--bit0: RX9D	= ReadOnly
		//	  |||||||---bit1: OERR	= ReadOnly
		//	  ||||||----bit2: FERR	= ReadOnly
		//	  |||||-----bit3: ADDEN	= n/a
		//	  ||||------bit4: CREN	= Enable receiver
		//	  |||-------bit5: SREN	= n/a
		//	  ||--------bit6: RX9	= 8-bit reception
		//	  |---------bit7: SPEN	= Serial port enabled

	/* Calculate the baud rate generator value.
	   We use low-speed (BRGH=0), the formula is
	   SPBRG = ( ( FOSC / Desired Baud Rate ) / 64 ) - 1 */
	usSPBRG = ( ( APROCFREQ / ulWantedBaud ) / 64 ) - 1;
	if( usSPBRG > 255 )
	{
		SPBRG = 255;
	}
	else
	{
		SPBRG = usSPBRG;
	}

	/* Set the serial interrupts to use the same priority as the tick. */
	bTXIP = serLOW_PRIORITY;
	bRCIP = serLOW_PRIORITY;

	/* Enable the Rx interrupt now, the Tx interrupt will get enabled when
	we have data to send. */
	bRCIE = serINTERRUPT_ENABLED;
	
	portEXIT_CRITICAL();

	/* Unlike other ports, this serial code does not allow for more than one
	com port.  We therefore don't return a pointer to a port structure and 
	can	instead just return NULL. */
	return NULL;
}
/*-----------------------------------------------------------*/

xComPortHandle xSerialPortInit( eCOMPort ePort, eBaud eWantedBaud, eParity eWantedParity, eDataBits eWantedDataBits, eStopBits eWantedStopBits, unsigned portCHAR ucBufferLength )
{
	/* This is not implemented in this port.
	Use xSerialPortInitMinimal() instead. */
	return NULL;
}
/*-----------------------------------------------------------*/

portBASE_TYPE xSerialGetChar( xComPortHandle pxPort, portCHAR *pcRxedChar, portTickType xBlockTime )
{
	/* Get the next character from the buffer.  Return false if no characters
	are available, or arrive before xBlockTime expires. */
	if( xQueueReceive( xRxedChars, pcRxedChar, xBlockTime ) )
	{
		return ( portCHAR ) pdTRUE;
	}

	return ( portCHAR ) pdFALSE;
}
/*-----------------------------------------------------------*/

portBASE_TYPE xSerialPutChar( xComPortHandle pxPort, portCHAR cOutChar, portTickType xBlockTime )
{
	/* Return false if after the block time there is no room on the Tx queue. */
	if( xQueueSend( xCharsForTx, ( const void * ) &cOutChar, xBlockTime ) != ( portCHAR ) pdPASS )
	{
		return pdFAIL;
	}

	/* Turn interrupt on - ensure the compiler only generates a single 
	instruction for this. */
	bTXIE = serINTERRUPT_ENABLED;

	return pdPASS;
}
/*-----------------------------------------------------------*/

void vSerialClose( xComPortHandle xPort )
{
	/* Not implemented for this port.
	To implement, turn off the interrupts and delete the memory
	allocated to the queues. */
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产一区二区三区免费看| 亚洲成人一区二区| 国产精品一区专区| 久久综合av免费| 国模无码大尺度一区二区三区 | 成人动漫视频在线| 国产精品视频第一区| 成人av在线播放网址| 亚洲精品亚洲人成人网| 精品视频在线视频| 久久精品国产一区二区| 欧美成人女星排名| 国产福利不卡视频| 亚洲色图色小说| 欧美日韩精品二区第二页| 久久av资源站| 亚洲欧洲国产日本综合| 欧美三级韩国三级日本三斤| 日韩精品国产精品| 久久久久国产免费免费| 99精品视频在线观看免费| 亚洲午夜久久久久久久久电影网 | 午夜精品成人在线| 日韩三级电影网址| av一区二区三区四区| 亚洲综合久久久久| 亚洲精品在线免费播放| www.av精品| 青青青爽久久午夜综合久久午夜| 久久久久久久综合| 一本色道久久综合狠狠躁的推荐| 日韩精品成人一区二区三区| 国产亚洲欧美激情| 欧美日韩国产首页在线观看| 国产乱码字幕精品高清av| 亚洲精品亚洲人成人网在线播放| 日韩一区二区三区高清免费看看| 风间由美一区二区av101| 亚洲va欧美va人人爽| 久久久99精品久久| 在线国产电影不卡| 国产成人av一区二区三区在线观看| 亚洲免费成人av| 久久亚区不卡日本| 欧美精品在欧美一区二区少妇| 韩国女主播一区| 午夜精品123| 日韩毛片在线免费观看| 精品成人a区在线观看| 欧美性受xxxx| 成人av高清在线| 免费久久99精品国产| 亚洲午夜久久久久久久久久久| 国产精品三级av在线播放| 3atv一区二区三区| 色妞www精品视频| 国产一区二区美女诱惑| 日韩av一区二区三区四区| 亚洲精品国产一区二区精华液| 久久精品一级爱片| 精品蜜桃在线看| 欧美日韩aaaaaa| 日本韩国精品一区二区在线观看| 国产精品香蕉一区二区三区| 久久国产精品99精品国产| 天堂在线亚洲视频| 亚洲成人在线观看视频| 一区二区三区在线观看网站| 亚洲视频在线一区| 国产精品久久久久久久久搜平片| 久久一留热品黄| 欧美大片免费久久精品三p| 欧美一区二区高清| 91精品在线观看入口| 欧美日韩国产一级片| 欧美日韩mp4| 欧美日韩一级二级三级| 欧美性大战久久| 在线视频你懂得一区| 日本精品一级二级| 日本精品视频一区二区三区| 色婷婷av一区二区三区gif| 色婷婷国产精品| 欧美亚洲国产一区二区三区va| 欧美色网一区二区| 欧美三级视频在线播放| 欧美三级在线播放| 欧美电影一区二区| 日韩一二在线观看| 精品国产三级a在线观看| 欧美sm美女调教| 国产亚洲女人久久久久毛片| 国产精品女上位| 亚洲美女淫视频| 亚洲香肠在线观看| 日本亚洲三级在线| 国产一区二区毛片| 91在线码无精品| 在线亚洲一区二区| 91麻豆精品国产91| xvideos.蜜桃一区二区| 国产色产综合产在线视频| 亚洲欧洲成人av每日更新| 亚洲视频 欧洲视频| 亚洲a一区二区| 久久狠狠亚洲综合| 成人综合婷婷国产精品久久蜜臀 | 欧美日韩免费观看一区三区| 911精品国产一区二区在线| 日韩一区二区三区四区| 久久精品夜夜夜夜久久| 最新国产成人在线观看| 亚洲一卡二卡三卡四卡五卡| 日韩国产成人精品| 国产精品综合久久| 99精品欧美一区二区三区小说 | 久久精品国产色蜜蜜麻豆| 成人综合在线网站| 欧美日韩国产首页在线观看| 久久影音资源网| 亚洲综合一区二区精品导航| 国内精品伊人久久久久av影院| 91一区二区在线| 日韩午夜电影在线观看| 国产精品美女www爽爽爽| 五月天亚洲精品| 国产乱人伦精品一区二区在线观看 | 欧美一级欧美一级在线播放| 国产亚洲污的网站| 亚洲丶国产丶欧美一区二区三区| 九色porny丨国产精品| 欧美在线观看视频一区二区| 欧美精品一区二区三区四区 | 6080国产精品一区二区| 国产调教视频一区| 日韩专区欧美专区| 91亚洲精品乱码久久久久久蜜桃| 欧美va亚洲va国产综合| 亚洲理论在线观看| 高清日韩电视剧大全免费| 91精选在线观看| 亚洲同性gay激情无套| 精品在线播放免费| 欧美日韩在线播放三区| 亚洲婷婷国产精品电影人久久| 久久精品国产一区二区| 欧美男人的天堂一二区| 中文字幕在线不卡| 国产一区欧美二区| 欧美一级一区二区| 午夜久久久影院| 在线观看日韩av先锋影音电影院| 久久久久久久久久久久久女国产乱| 亚洲123区在线观看| 91麻豆精品一区二区三区| 久久久www免费人成精品| 麻豆国产91在线播放| 欧美日韩一区二区在线视频| 亚洲男人的天堂在线aⅴ视频| 国产精品99精品久久免费| 欧美电视剧在线看免费| 日av在线不卡| 91精品国产欧美日韩| 亚洲一区二区欧美激情| 欧美优质美女网站| 一区二区三区在线影院| 91丨porny丨中文| 日韩毛片在线免费观看| 91伊人久久大香线蕉| 亚洲人成网站影音先锋播放| 国产99精品国产| 国产欧美精品国产国产专区| 国产在线视频精品一区| 精品日韩一区二区三区免费视频| 日本不卡高清视频| 欧美一区二区三区男人的天堂| 日韩综合小视频| 91精品国产麻豆| 免费在线观看一区| 日韩一级大片在线观看| 久久国产精品一区二区| 久久一区二区三区四区| 成人免费视频国产在线观看| 国产精品美女www爽爽爽| 91在线精品一区二区| 亚洲精品一二三| 欧美日韩国产欧美日美国产精品| 婷婷开心激情综合| 欧美一级理论性理论a| 精品亚洲国内自在自线福利| 久久久天堂av| 91免费观看视频在线| 亚洲成a天堂v人片| 欧美一级一区二区| 国产一区二区三区四区五区美女| 国产精品天天看| 欧美午夜精品久久久久久超碰| 偷拍日韩校园综合在线| www欧美成人18+| 波多野结衣在线一区|