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

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

?? dataflash_.h

?? 基于ST7920的LCD12864資料及源碼
?? H
?? 第 1 頁 / 共 2 頁
字號:
		}
	}
	else
	if (2 == BufferNo)							//read byte(s) from buffer 2
	{
		DF_SPI_RW(Buf2Read);					//buffer 2 read op-code
		DF_SPI_RW(0x00);						//don't cares
		DF_SPI_RW((unsigned char)(IntPageAdr>>8));//upper part of internal buffer address
		DF_SPI_RW((unsigned char)(IntPageAdr));	//lower part of internal buffer address
		DF_SPI_RW(0x00);						//don't cares
		for( i=0; i<No_of_bytes; i++)
		{
			*(BufferPtr) = DF_SPI_RW(0x00);		//read byte and put it in AVR buffer pointed to by *BufferPtr
			BufferPtr++;						//point to next element in AVR buffer
		}
	}
}
//NB : Sjekk at (IntAdr + No_of_bytes) < buffersize, hvis ikke blir det bare ball..



/*****************************************************************************
*
*	Function name : Buffer_Write_Enable
*
*	Returns :		None
*
*	Parameters :	IntPageAdr	->	Internal page address to start writing from
*					BufferAdr	->	Decides usage of either buffer 1 or 2
*					
*	Purpose :		Enables continous write functionality to one of the dataflash buffers
*					buffers. NOTE : User must ensure that CS goes high to terminate
*					this mode before accessing other dataflash functionalities 
*
******************************************************************************/
void Buffer_Write_Enable (unsigned char BufferNo, unsigned int IntPageAdr)
{
	DF_CS_inactive;								//make sure to toggle CS signal in order
	DF_CS_active;								//to reset dataflash command decoder
	
	if (1 == BufferNo)							//write enable to buffer 1
	{
		DF_SPI_RW(Buf1Write);					//buffer 1 write op-code
		DF_SPI_RW(0x00);						//don't cares
		DF_SPI_RW((unsigned char)(IntPageAdr>>8));//upper part of internal buffer address
		DF_SPI_RW((unsigned char)(IntPageAdr));	//lower part of internal buffer address
	}
	else
	if (2 == BufferNo)							//write enable to buffer 2
	{
		DF_SPI_RW(Buf2Write);					//buffer 2 write op-code
		DF_SPI_RW(0x00);						//don't cares
		DF_SPI_RW((unsigned char)(IntPageAdr>>8));//upper part of internal buffer address
		DF_SPI_RW((unsigned char)(IntPageAdr));	//lower part of internal buffer address
	}
}



/*****************************************************************************
*
*	Function name : Buffer_Write_Byte
*
*	Returns :		None
*
*	Parameters :	IntPageAdr	->	Internal page address to write byte to
*					BufferAdr	->	Decides usage of either buffer 1 or 2
*					Data		->	Data byte to be written
*
*	Purpose :		Writes one byte to one of the dataflash
*					internal SRAM buffers
*
******************************************************************************/
void Buffer_Write_Byte (unsigned char BufferNo, unsigned int IntPageAdr, unsigned char Data)
{
	
	DF_CS_inactive;								//make sure to toggle CS signal in order
	DF_CS_active;								//to reset dataflash command decoder
	
	if (1 == BufferNo)							//write byte to buffer 1
	{
		DF_SPI_RW(Buf1Write);					//buffer 1 write op-code
		DF_SPI_RW(0x00);						//don't cares
		DF_SPI_RW((unsigned char)(IntPageAdr>>8));//upper part of internal buffer address
		DF_SPI_RW((unsigned char)(IntPageAdr));	//lower part of internal buffer address
		DF_SPI_RW(Data);						//write data byte
	}
	else
	if (2 == BufferNo)							//write byte to buffer 2
	{
		DF_SPI_RW(Buf2Write);					//buffer 2 write op-code
		DF_SPI_RW(0x00);						//don't cares
		DF_SPI_RW((unsigned char)(IntPageAdr>>8));//upper part of internal buffer address
		DF_SPI_RW((unsigned char)(IntPageAdr));	//lower part of internal buffer address
		DF_SPI_RW(Data);						//write data byte
	}		
}


/*****************************************************************************
*
*	Function name : Buffer_Write_Str
*
*	Returns :		None
*
*	Parameters :	BufferNo	->	Decides usage of either buffer 1 or 2
*					IntPageAdr	->	Internal page address
*					No_of_bytes	->	Number of bytes to be written
*					*BufferPtr	->	address of buffer to be used for copy of bytes
*									from AVR buffer to dataflash buffer 1 (or 2)
*
*	Purpose :		Copies one or more bytes to one of the dataflash
*					internal SRAM buffers from AVR SRAM buffer
*					pointed to by *BufferPtr
*
******************************************************************************/
void Buffer_Write_Str (unsigned char BufferNo, unsigned int IntPageAdr, unsigned int No_of_bytes, unsigned char *BufferPtr)
{
	unsigned int i;

	DF_CS_inactive;								//make sure to toggle CS signal in order
	DF_CS_active;								//to reset dataflash command decoder
	
	if (1 == BufferNo)							//write byte(s) to buffer 1
	{
		DF_SPI_RW(Buf1Write);					//buffer 1 write op-code
		DF_SPI_RW(0x00);						//don't cares
		DF_SPI_RW((unsigned char)(IntPageAdr>>8));//upper part of internal buffer address
		DF_SPI_RW((unsigned char)(IntPageAdr));	//lower part of internal buffer address
		for( i=0; i<No_of_bytes; i++)
		{
			DF_SPI_RW(BufferPtr[i]);			//write byte pointed at by *BufferPtr to dataflash buffer 1 location
			//BufferPtr++;						//point to next element in AVR buffer
		}
	}
	else
	if (2 == BufferNo)							//write byte(s) to buffer 2
	{
		DF_SPI_RW(Buf2Write);					//buffer 2 write op-code
		DF_SPI_RW(0x00);						//don't cares
		DF_SPI_RW((unsigned char)(IntPageAdr>>8));//upper part of internal buffer address
		DF_SPI_RW((unsigned char)(IntPageAdr));	//lower part of internal buffer address
		for( i=0; i<No_of_bytes; i++)
		{
			DF_SPI_RW(*(BufferPtr));			//write byte pointed at by *BufferPtr to dataflash buffer 2 location
			BufferPtr++;						//point to next element in AVR buffer
		}
	}
}
//NB : Monitorer busy-flag i status-reg.
//NB : Sjekk at (IntAdr + No_of_bytes) < buffersize, hvis ikke blir det bare ball..



/*****************************************************************************
*
*	Function name : Buffer_To_Page
*
*	Returns :		None
*
*	Parameters :	BufferAdr	->	Decides usage of either buffer 1 or 2
*					PageAdr		->	Address of flash page to be programmed
*
*	Purpose :		Transfers a page from dataflash SRAM buffer to flash
*					
******************************************************************************/
void Buffer_To_Page (unsigned char BufferNo, unsigned int PageAdr)
{
	DF_CS_inactive;												//make sure to toggle CS signal in order
	DF_CS_active;												//to reset dataflash command decoder
		
	if (1 == BufferNo)											//program flash page from buffer 1
	{
		DF_SPI_RW(Buf1ToFlashWE);								//buffer 1 to flash with erase op-code
		DF_SPI_RW((unsigned char)(PageAdr >> (16 - PageBits)));	//upper part of page address
		DF_SPI_RW((unsigned char)(PageAdr << (PageBits - 8)));	//lower part of page address
		DF_SPI_RW(0x00);										//don't cares
	}
	else	
	if (2 == BufferNo)											//program flash page from buffer 2
	{
		DF_SPI_RW(Buf2ToFlashWE);								//buffer 2 to flash with erase op-code
		DF_SPI_RW((unsigned char)(PageAdr >> (16 - PageBits)));	//upper part of page address
		DF_SPI_RW((unsigned char)(PageAdr << (PageBits - 8)));	//lower part of page address
		DF_SPI_RW(0x00);										//don't cares
	}
	
	DF_CS_inactive;												//initiate flash page programming
	DF_CS_active;												
	
	while(!(Read_DF_status() & 0x80));							//monitor the status register, wait until busy-flag is high
}


/*****************************************************************************
*
*	Function name : Cont_Flash_Read_Enable
*
*	Returns :		None
*
*	Parameters :	PageAdr		->	Address of flash page where cont.read starts from
*					IntPageAdr	->	Internal page address where cont.read starts from
*
*	Purpose :		Initiates a continuous read from a location in the DataFlash
*					
******************************************************************************/
void Cont_Flash_Read_Enable (unsigned int PageAdr, unsigned int IntPageAdr)
{
	DF_CS_inactive;																//make sure to toggle CS signal in order
	DF_CS_active;																//to reset dataflash command decoder
	
	DF_SPI_RW(ContArrayRead);													//Continuous Array Read op-code
	DF_SPI_RW((unsigned char)(PageAdr >> (16 - PageBits)));						//upper part of page address
	DF_SPI_RW((unsigned char)((PageAdr << (PageBits - 8))+ (IntPageAdr>>8)));	//lower part of page address and MSB of int.page adr.
	DF_SPI_RW((unsigned char)(IntPageAdr));										//LSB byte of internal page address
	DF_SPI_RW(0x00);															//perform 4 dummy writes
	DF_SPI_RW(0x00);															//in order to intiate DataFlash
	DF_SPI_RW(0x00);															//address pointers
	DF_SPI_RW(0x00);
}

// *****************************[ End Of DATAFLASH.C ]*************************

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品久久久久久久久久免费看 | 99久久精品情趣| 亚洲成人在线观看视频| 亚洲黄色av一区| 一区二区三区精品| 亚洲一区二区三区爽爽爽爽爽| 国产精品视频一二三| 久久精品无码一区二区三区| 久久人人97超碰com| 久久精品水蜜桃av综合天堂| 国产精品久久三区| 亚洲色图在线视频| 亚洲二区在线视频| 裸体一区二区三区| 国产一区三区三区| 成人黄色a**站在线观看| 99久久免费精品高清特色大片| 99re热视频这里只精品| 成人黄色一级视频| 在线观看网站黄不卡| 91精品免费观看| 久久久久久久久久久99999| 欧美国产一区二区在线观看| 一区二区在线看| 亚洲午夜久久久久久久久久久| 日韩激情av在线| 国产综合色产在线精品| 国产 日韩 欧美大片| 色综合久久中文综合久久牛| 欧美在线色视频| 日韩欧美一区二区不卡| 国产精品成人网| 亚洲国产成人91porn| 久久99九九99精品| 色婷婷av一区二区三区软件| 欧美一区二区三区日韩视频| 国产嫩草影院久久久久| 亚洲成人www| 成人app软件下载大全免费| 欧美日韩一区二区在线观看视频 | 久久66热偷产精品| 不卡的电视剧免费网站有什么| 在线免费av一区| 国产校园另类小说区| 亚洲123区在线观看| 成人久久18免费网站麻豆 | 国产精品五月天| 日本不卡视频在线| 色美美综合视频| 亚洲国产高清aⅴ视频| 日韩精品久久理论片| 91女厕偷拍女厕偷拍高清| 欧美tickling挠脚心丨vk| 一区二区三区中文在线观看| 国产二区国产一区在线观看| 欧美日韩电影一区| 亚洲黄色录像片| 成人99免费视频| 久久久www免费人成精品| 免费精品视频在线| 欧美日本韩国一区二区三区视频| 国产精品素人视频| 国产成人精品亚洲777人妖| 日韩区在线观看| 亚洲成a人v欧美综合天堂| 色婷婷久久久久swag精品| 国产精品人妖ts系列视频| 激情欧美一区二区| 欧美一区二区二区| 日韩精品免费视频人成| 欧美日韩aaaaa| 亚洲va韩国va欧美va| 欧美曰成人黄网| 亚洲精选免费视频| 色哟哟在线观看一区二区三区| 成人免费在线视频观看| 不卡一区二区中文字幕| 日本一区二区三区国色天香| 国产成人av网站| 中文字幕第一区综合| 91在线视频在线| 亚洲精品欧美综合四区| 91成人免费在线| 亚洲影院理伦片| 欧美精品乱人伦久久久久久| 日韩电影在线看| 91精品国产乱码| 国产一区二区在线视频| 日本一区二区综合亚洲| 99re66热这里只有精品3直播 | 91网站视频在线观看| 亚洲精品视频在线| 欧美日韩成人激情| 国产呦萝稀缺另类资源| 国产精品高潮久久久久无| 色美美综合视频| 免费看日韩精品| 日本一区二区动态图| 色av一区二区| 麻豆国产精品视频| 中文字幕免费观看一区| 欧洲生活片亚洲生活在线观看| 午夜国产精品影院在线观看| 日韩午夜在线观看| 成人网在线播放| 婷婷国产v国产偷v亚洲高清| 精品国产一区二区三区av性色| 国产99精品国产| 亚洲午夜av在线| www欧美成人18+| 在线观看日韩毛片| 久久99蜜桃精品| 亚洲精品视频免费观看| 日韩欧美国产综合在线一区二区三区| 国产呦精品一区二区三区网站| 中文字幕+乱码+中文字幕一区| 欧美视频第二页| 丁香激情综合国产| 日韩精品一级二级| 亚洲色欲色欲www| 精品国产乱码久久| 欧美午夜影院一区| 成熟亚洲日本毛茸茸凸凹| 午夜电影一区二区| 国产精品久久久久久久久免费相片| 欧美疯狂做受xxxx富婆| 97久久超碰国产精品| 理论电影国产精品| 亚洲va欧美va人人爽| 亚洲丝袜美腿综合| 久久精品一区蜜桃臀影院| 欧美电影影音先锋| 在线免费观看日本一区| 菠萝蜜视频在线观看一区| 免费精品99久久国产综合精品| 亚洲一区二区四区蜜桃| 国产精品久久久久影视| 久久夜色精品国产噜噜av| 884aa四虎影成人精品一区| 在线视频一区二区三| 国产精品夜夜爽| 国产一区二区免费在线| 免费观看30秒视频久久| 五月开心婷婷久久| 亚洲午夜激情网站| 亚洲二区在线视频| 亚洲一区在线观看网站| 樱桃视频在线观看一区| 一区二区三区中文免费| 国产精品护士白丝一区av| 国产精品美女久久久久久久| 国产午夜精品一区二区| 国产欧美日韩另类视频免费观看| 日韩精品一区二区三区swag | 日韩精品一区二区在线观看| 在线播放欧美女士性生活| 欧美性大战久久久久久久蜜臀 | 天天爽夜夜爽夜夜爽精品视频| 亚洲免费观看视频| 亚洲精品国产一区二区精华液| 亚洲免费在线看| 亚洲第一福利一区| 日韩在线播放一区二区| 久久国产视频网| 国产河南妇女毛片精品久久久 | 在线影视一区二区三区| 欧美在线视频日韩| 91精品国产欧美一区二区成人| 日韩欧美不卡在线观看视频| 欧美电影免费提供在线观看| 久久综合九色综合97_久久久| 久久综合国产精品| 国产精品伦一区| 一区二区三区毛片| 免费人成精品欧美精品| 粉嫩久久99精品久久久久久夜| 成人毛片在线观看| 欧美日韩视频在线观看一区二区三区 | 99久久久久免费精品国产| 91福利国产成人精品照片| 欧美一区二区播放| 国产精品无码永久免费888| 中文字幕永久在线不卡| 亚洲sss视频在线视频| 久久av中文字幕片| 93久久精品日日躁夜夜躁欧美| 69堂成人精品免费视频| 久久久精品影视| 亚洲激情中文1区| 国模套图日韩精品一区二区 | 偷窥国产亚洲免费视频| 国产成人综合自拍| 欧美乱熟臀69xxxxxx| 欧美激情综合五月色丁香| 亚洲成人高清在线| av成人免费在线观看| 欧美一区三区四区| 亚洲美女区一区| 国产一区二区三区高清播放| 欧美亚洲愉拍一区二区|