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

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

?? dataflash_.h

?? 1602顯示器ICCAVR加庫函數,1602顯示器ICCAVR加庫函數
?? 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一区二区三区免费野_久草精品视频
亚洲电影欧美电影有声小说| 777色狠狠一区二区三区| 日韩一区二区免费高清| 亚洲综合自拍偷拍| 一本高清dvd不卡在线观看| 国产精品美女久久久久aⅴ| 麻豆精品一区二区| 555www色欧美视频| 石原莉奈在线亚洲二区| 欧美福利视频一区| 日本不卡一二三| 欧美成人高清电影在线| 麻豆精品视频在线观看| 26uuu国产一区二区三区| 国精产品一区一区三区mba桃花| 欧美草草影院在线视频| 国产一区二区三区在线看麻豆| 久久免费午夜影院| 国产成人午夜视频| 1024亚洲合集| 91日韩精品一区| 亚洲高清免费在线| 91精品久久久久久久91蜜桃| 精品一区二区三区免费视频| 中文字幕免费一区| 99精品久久只有精品| 一个色综合网站| 91精品欧美福利在线观看| 狠狠色丁香婷婷综合| 欧美一级日韩免费不卡| 国产一区二区精品在线观看| 亚洲天堂免费看| 91麻豆精品国产自产在线| 日本vs亚洲vs韩国一区三区| 国产女人18毛片水真多成人如厕| 色偷偷久久人人79超碰人人澡| 亚洲成年人网站在线观看| 精品盗摄一区二区三区| 99re这里只有精品6| 日韩高清国产一区在线| 欧美电影免费观看完整版| 成人精品免费视频| 亚洲国产成人av网| 精品女同一区二区| 成人午夜伦理影院| 一区二区三区国产豹纹内裤在线| 日韩欧美久久久| 91免费看`日韩一区二区| 日韩福利电影在线观看| 国产精品美女一区二区在线观看| 欧美日韩色一区| 国产精品资源站在线| 亚洲国产aⅴ成人精品无吗| 久久精品视频免费观看| 欧美日本一区二区在线观看| 丁香一区二区三区| 午夜精品久久久久影视| 国产精品女人毛片| 日韩一区二区三区视频在线| 色综合天天狠狠| 精品无人码麻豆乱码1区2区| 一区二区三区免费看视频| 国产无遮挡一区二区三区毛片日本| 欧美性猛交一区二区三区精品| 成人精品一区二区三区四区| 捆绑调教美女网站视频一区| 午夜精品久久久久久久久久| 久久亚洲综合色一区二区三区| 欧美男同性恋视频网站| 91在线观看地址| 高清在线成人网| 蜜桃视频一区二区| 午夜影院在线观看欧美| 日韩一区在线免费观看| 国产亚洲一区二区在线观看| 日韩天堂在线观看| 欧美肥胖老妇做爰| 欧美性猛交xxxx黑人交| 色综合色综合色综合色综合色综合| 国产成人精品网址| 裸体一区二区三区| 亚洲成av人片在线| 樱桃国产成人精品视频| 国产精品毛片大码女人| 亚洲欧洲一区二区三区| 亚洲色图在线播放| 亚洲另类春色校园小说| 一区二区三区日本| 亚洲国产sm捆绑调教视频| 丝袜美腿亚洲色图| 久久国产综合精品| 国产高清无密码一区二区三区| 夫妻av一区二区| 色999日韩国产欧美一区二区| 欧洲一区二区三区免费视频| 91精品国产品国语在线不卡| 精品国产免费一区二区三区四区| 久久久精品一品道一区| 国产精品久久福利| 亚洲综合成人网| 欧美aaa在线| 丰满亚洲少妇av| 在线亚洲一区观看| 日韩午夜电影av| 国产精品理论片在线观看| 亚洲午夜在线电影| 日本v片在线高清不卡在线观看| 国产一区二区调教| 色先锋久久av资源部| 日韩一区二区在线看片| 国产欧美一区二区精品久导航| 亚洲激情av在线| 麻豆精品一区二区| 99视频在线精品| 欧美精品v日韩精品v韩国精品v| 欧美精品一区在线观看| 亚洲欧美视频在线观看| 日韩高清一区在线| 99视频在线精品| 欧美一区二区精品在线| 国产精品情趣视频| 免费成人在线视频观看| 99久久99久久精品免费看蜜桃| 欧美区视频在线观看| 国产精品久久久久久亚洲毛片| 图片区日韩欧美亚洲| 成人的网站免费观看| 日韩欧美成人激情| 亚洲欧美一区二区三区国产精品| 毛片av一区二区| 色综合久久天天| 久久久亚洲精品石原莉奈| 午夜成人在线视频| 99精品视频在线免费观看| 日韩欧美一级精品久久| 亚洲一区二区在线免费观看视频| 国产精品夜夜爽| 欧美一区二区三区四区高清| 亚洲免费观看高清完整版在线 | 高清日韩电视剧大全免费| 欧美日韩国产一二三| 中文字幕电影一区| 精品综合免费视频观看| 欧美日本高清视频在线观看| 亚洲色图欧美偷拍| 成人美女视频在线观看| 26uuuu精品一区二区| 免费视频一区二区| 欧美人牲a欧美精品| 亚洲精品国产高清久久伦理二区| 成人免费高清在线观看| 国产午夜精品一区二区三区视频| 麻豆成人久久精品二区三区小说| 欧美二区乱c少妇| 午夜久久久影院| 欧美日韩午夜精品| 亚洲国产精品一区二区久久恐怖片 | 国产精品国产三级国产专播品爱网| 九九精品一区二区| 91麻豆精品91久久久久同性| 天堂一区二区在线| 欧美熟乱第一页| 亚洲国产精品一区二区久久| 日本韩国一区二区| 亚洲精品国产a| 欧美中文字幕一区二区三区亚洲| 中文字幕字幕中文在线中不卡视频| 成人av电影在线| 亚洲欧洲无码一区二区三区| 色综合久久久久综合99| 亚洲美女视频在线观看| 在线观看日韩国产| 亚洲一二三区在线观看| 欧美视频日韩视频| 日韩精品视频网站| 日韩精品中文字幕一区二区三区| 麻豆精品一区二区三区| 精品成人a区在线观看| 国产91精品露脸国语对白| 国产精品家庭影院| 色婷婷综合久久| 香港成人在线视频| 日韩欧美一区二区视频| 青青青爽久久午夜综合久久午夜| 日韩午夜中文字幕| 国产一区美女在线| 中文在线资源观看网站视频免费不卡 | 久久国产福利国产秒拍| 久久久久久久精| 99热国产精品| 日韩成人午夜精品| 欧美tk—视频vk| 大白屁股一区二区视频| 一区二区三区小说| 欧美电影影音先锋| 国产成人欧美日韩在线电影| 亚洲欧洲综合另类| 91精品国产乱| 99久久精品久久久久久清纯| 日韩极品在线观看|