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

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

?? init.c

?? Source code for driving RFM01 fm radio receiver. Code for ATmega microcontrolers with 8bit CRC check
?? C
字號:
//*****************************************************************************
// Title		: Software Interrupt-driven UART function library
// Author		: Pascal Stang - Copyright (C) 2002-2003
//
// This code is distributed under the GNU Public License
//		which can be found at http://www.gnu.org/licenses/gpl.txt
//
//*****************************************************************************

#include "../uartsw.h"

// UARTSW_ transmit status and data variables
volatile u08 UARTSW_TxBusy;
volatile u16 UARTSW_BaudRateDiv;
volatile u08 UARTSW_TxData;
volatile u08 UARTSW_TxBitNum;

// receive buffer
cBuffer UARTSW_RxBuffer;               ///< UARTSW_ receive buffer
// automatically allocate space in ram for each buffer
static char UARTSW_RxData[UARTSW__RX_BUFFER_SIZE];
// UARTSW_ receive status and data variables
volatile u08 UARTSW_RxStartBit;
volatile u08 UARTSW_RxData;
volatile u08 UARTSW_RxBitNum;

// functions

void UARTSW_TxBitService(void)
{
	if(UARTSW_TxBitNum)
	{
		// there are bits still waiting to be transmitted
		if(UARTSW_TxBitNum > 1)
		{
			// transmit data bits (inverted, LSB first)
			if( !(UARTSW_TxData & 0x01) )
				sbi(PORTD, PD5);
			else
				cbi(PORTD, PD5);
			// shift bits down
			UARTSW_TxData = UARTSW_TxData>>1;
		}
		else
		{
			// transmit stop bit
			cbi(PORTD, PD5);
		}
		// schedule the next bit
		outw(OCR1A, inw(OCR1A) + UARTSW_BaudRateDiv);
		// count down
		UARTSW_TxBitNum--;
	}
	else
	{
		// transmission is done
		// clear busy flag
		UARTSW_TxBusy = FALSE;
	}
}

void UARTSW_RxBitService(void)
{
	// this function runs on either:
	// - a rising edge interrupt
	// - OC1B
	if(!UARTSW_RxStartBit)
	{
		// this is a start bit
		// disable ICP interrupt
		cbi(TIMSK, TICIE1);
		// schedule data bit sampling 1.5 bit periods from now
		outw(OCR1B, inw(TCNT1) + UARTSW_BaudRateDiv + UARTSW_BaudRateDiv/2);
		// clear OC1B interrupt flag
		sbi(TIFR, OCF1B);
		// enable OC1B interrupt
		sbi(TIMSK, OCIE1B);
		// set start bit flag
		UARTSW_RxStartBit = TRUE;
		// reset bit counter
		UARTSW_RxBitNum = 0;
		// reset data
		UARTSW_RxData = 0;
	}
	else
	{
		// start bit has already been received
		// we're in the data bits
		
		// shift data byte to make room for new bit
		UARTSW_RxData = UARTSW_RxData>>1;

		// sample the data line
		if( !(inb(PIND) & (1<<6)) )
		{
			// serial line is low
			// record '1' bit (data inverted)
			UARTSW_RxData |= 0x80;
		}

		// increment bit counter
		UARTSW_RxBitNum++;
		// schedule next bit sample
		outw(OCR1B, inw(OCR1B) + UARTSW_BaudRateDiv);

		// check if we have a full byte
		if(UARTSW_RxBitNum >= 8)
		{
			// save data in receive buffer
			bufferAddToEnd(&UARTSW_RxBuffer, UARTSW_RxData);
			// disable OC1B interrupt
			cbi(TIMSK, OCIE1B);
			// clear ICP interrupt flag
			sbi(TIFR, ICF1);
			// enable ICP interrupt
			sbi(TIMSK, TICIE1);
			// clear start bit flag
			UARTSW_RxStartBit = FALSE;
		}
	}
}

//! enable and initialize the software uart
void UARTSW_init()
{
    // initialize the buffers
	bufferInit(&UARTSW_RxBuffer, UARTSW_RxData, UARTSW__RX_BUFFER_SIZE);
	// initialize the ports
	sbi(DDRD, 5);
	cbi(DDRD, 6);
	cbi(PORTD, 6);
	// initialize baud rate
	UARTSW_BaudRateDiv = (u16)((F_CPU+(UART_BAUD/2L))/(UART_BAUD*1L));
	// set timer prescaler
	timer1SetPrescaler(TIMER_CLK_DIV1);
	// attach TxBit service routine to OC1A
	timerAttach(TIMER1OUTCOMPAREA_INT, UARTSW_TxBitService);
	// attach RxStart service routine to ICP
	timerAttach(TIMER1INPUTCAPTURE_INT, UARTSW_RxBitService);
	// attach RxBit service routine to OC1B
	timerAttach(TIMER1OUTCOMPAREB_INT, UARTSW_RxBitService);
	// enable OC1A interrupt
	sbi(TIMSK, OCIE1A);
	// enable ICP interrupt
	sbi(TIMSK, TICIE1);
	// trigger on rising edge
	sbi(TCCR1B, ICES1);
	// turn on interrupts
	sei();
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
五月婷婷久久丁香| 国产精品毛片无遮挡高清| 日本欧洲一区二区| 欧美一区二区三区爱爱| 久久97超碰国产精品超碰| 久久久久久综合| 成人高清在线视频| 亚洲一区二区三区视频在线| 色av综合在线| 婷婷亚洲久悠悠色悠在线播放| 欧美一区午夜精品| 国产成人午夜电影网| 亚洲精品一二三| 欧美一区二区三区成人| 成人福利电影精品一区二区在线观看| 中文字幕亚洲欧美在线不卡| 欧美性色欧美a在线播放| 蜜臀av一级做a爰片久久| 中文字幕精品在线不卡| 欧美视频在线一区二区三区 | 亚洲欧美一区二区三区孕妇| 日本伦理一区二区| 美脚の诱脚舐め脚责91| 中文字幕在线不卡国产视频| 夜夜嗨av一区二区三区中文字幕| 久久精品国产一区二区| 久久精品一区四区| 91亚洲国产成人精品一区二区三 | 午夜电影一区二区三区| 欧美成人精品福利| 99久久精品免费看国产免费软件| 午夜一区二区三区在线观看| 久久久久久夜精品精品免费| 欧美日韩中文国产| 国产a久久麻豆| 日产精品久久久久久久性色 | 亚洲欧美国产三级| 日韩久久精品一区| 欧美中文字幕一二三区视频| 国产成都精品91一区二区三| 水蜜桃久久夜色精品一区的特点| 成人免费在线视频观看| 99精品视频在线观看| 卡一卡二国产精品| 亚洲免费高清视频在线| 久久先锋资源网| 欧美精品日韩一区| 色婷婷久久久久swag精品| 国产精品伊人色| 麻豆91在线播放| 亚洲va韩国va欧美va精品| 国产精品高清亚洲| 久久一区二区三区四区| 欧美一区二区三区在线| 欧美日韩精品高清| 91麻豆国产自产在线观看| 国产一区二区电影| 精品一区二区三区久久| 日韩精品亚洲专区| 一区二区三区日韩在线观看| 一区在线播放视频| 欧美经典一区二区| 久久久久久久一区| 欧美精品一区二区三区高清aⅴ| 欧美久久久久中文字幕| 97成人超碰视| 91一区在线观看| 成人app下载| 91麻豆精品国产91久久久久| 91精品国产高清一区二区三区| 成人avav在线| 国产成人av电影在线| 国产美女av一区二区三区| 久久国产乱子精品免费女| 蜜臀精品一区二区三区在线观看| 性欧美大战久久久久久久久| 亚洲成人免费在线| 亚洲成人av一区二区三区| 亚洲国产成人va在线观看天堂| 亚洲另类一区二区| 一区二区视频在线| 一二三区精品福利视频| 亚洲国产视频在线| 日韩黄色片在线观看| 美女视频一区在线观看| 狠狠色丁香婷婷综合久久片| 国产精品自拍一区| eeuss鲁一区二区三区| 色哟哟一区二区三区| 日韩精品专区在线影院观看| 久久综合久久鬼色| 国产精品久久久久永久免费观看| 亚洲天堂2014| 香蕉久久一区二区不卡无毒影院| 奇米色一区二区| 国产一区二区三区日韩| 不卡的av中国片| 一本到高清视频免费精品| 欧美另类高清zo欧美| 欧美大度的电影原声| 久久精品一二三| 亚洲精品视频自拍| 免费成人小视频| 成人av在线看| 欧美美女视频在线观看| 久久综合色婷婷| 亚洲色大成网站www久久九九| 午夜精品视频在线观看| 国产精品影视在线观看| 色久综合一二码| 日韩欧美一级二级| 亚洲欧美在线视频观看| 丝袜亚洲另类欧美综合| 成人自拍视频在线| 欧美在线不卡视频| 久久综合av免费| 一区二区三区色| 国产精品一区二区91| 欧美日韩成人综合天天影院 | 成人av网站大全| 欧美日韩一区二区三区视频| 国产欧美综合在线观看第十页| 亚洲午夜日本在线观看| 国产中文字幕一区| 欧美性猛片aaaaaaa做受| 337p日本欧洲亚洲大胆色噜噜| 玉足女爽爽91| 国产成人精品在线看| 91麻豆精品国产91久久久久久| 男男成人高潮片免费网站| 99亚偷拍自图区亚洲| 欧美精品一区二区精品网| 亚洲图片欧美视频| 国产99久久久国产精品潘金 | 国产精品白丝jk黑袜喷水| 欧美熟乱第一页| 国产精品久久777777| 久久爱另类一区二区小说| 欧美性一级生活| 国产精品进线69影院| 国产精品一线二线三线精华| 日韩一区二区三区观看| 一区二区三区中文在线| 99久久夜色精品国产网站| 日韩精品综合一本久道在线视频| 99热99精品| 国产不卡在线播放| 欧美一区二区网站| 一级中文字幕一区二区| 成人午夜在线免费| 日韩一区二区免费在线电影| 亚洲一区二区精品3399| 色综合天天综合色综合av| 国产欧美日韩视频在线观看| 国产一本一道久久香蕉| 日韩免费一区二区三区在线播放| 亚洲123区在线观看| 欧美在线一二三| 亚洲狠狠丁香婷婷综合久久久| 91丨porny丨蝌蚪视频| 国产精品久久毛片a| 不卡高清视频专区| 综合av第一页| 91亚洲精品一区二区乱码| 中文字幕视频一区二区三区久| 国产69精品一区二区亚洲孕妇| 久久久久9999亚洲精品| 懂色av中文一区二区三区| 国产日韩精品一区二区三区| 丁香天五香天堂综合| 国产精品国产三级国产普通话三级 | 亚洲日本护士毛茸茸| 91麻豆国产香蕉久久精品| 亚洲黄一区二区三区| 欧美中文字幕一二三区视频| 精品伊人久久久久7777人| 日韩欧美一区二区在线视频| 久久成人久久鬼色| 国产性做久久久久久| 99久久99久久精品国产片果冻| 成人免费一区二区三区在线观看| 91在线观看视频| 午夜婷婷国产麻豆精品| 日韩一区和二区| 国内精品免费在线观看| 中文在线免费一区三区高中清不卡| 91在线视频在线| 欧美亚洲日本一区| 偷偷要91色婷婷| 欧美成人乱码一区二区三区| 国产在线一区二区| 中文字幕成人在线观看| 91电影在线观看| 天天色综合成人网| 精品国产百合女同互慰| 99久久精品国产一区| 午夜电影一区二区三区| 亚洲精品一区二区三区精华液| 99久久精品一区二区| 日韩电影网1区2区|