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

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

?? dataflash_.h

?? 基于ST7920的LCD12864資料及源碼
?? H
?? 第 1 頁 / 共 2 頁
字號:
/******** Example Code : Accessing Atmel AT45Dxxx dataflash on STK500 *******

Device      : 	AT90S8515

File name   : 	dataflash.c

Description : 	Functions to access the Atmel AT45Dxxx dataflash series
      				  Supports 512Kbit - 64Mbit
                 
Last change:    16 Aug 2001   AS
 
****************************************************************************/

#define  __IAR_SYSTEMS_ASM__ 

// Includes
//#include <INA90.H>
//#include <io8515.h>

#include "D:\ICC_H\dataflash.h"

// Constants
//Look-up table for these sizes ->  512k, 1M, 2M, 4M, 8M, 16M, 32M, 64M
flash unsigned char DF_pagebits[]  ={  9,  9,  9,  9,  9,  10,  10,  11};	//index of internal page address bits

// Globals
unsigned char PageBits;

// Functions

/*****************************************************************************
*
*	Function name : DF_SPI_init
*
*	Returns :		None
*
*	Parameters :	None
*
*	Purpose :		Sets up the HW SPI in Master mode, Mode 3
*					Note -> Uses the SS line to control the DF CS-line.
*
******************************************************************************/
void DF_SPI_init (void)
{
	//PORTB= (1<<PORTB);									//Set SS high		
	//DDRB = (1<<PB4) | (1<<PB5)| (1<<PB7);					//Set SS, MOSI and SCK as outputs
	
	SPCR = (1<<SPE) | (1<<MSTR) | (1<<CPHA) | (1<<CPOL);	//Enable SPI in Master mode, mode 3
//SPCR=0x51;
}


/*****************************************************************************
*
*	Function name : DF_SPI_RW
*
*	Returns :		Byte read from SPI data register (any value)
*
*	Parameters :	Byte to be written to SPI data register (any value)
*
*	Purpose :		Read and writes one byte from/to SPI master
*
******************************************************************************/
unsigned char DF_SPI_RW (unsigned char output)
{
	unsigned char input;
	
	SPDR = output;							//put byte 'output' in SPI data register
	while(!(SPSR & 0x80));					//wait for transfer complete, poll SPIF-flag
	input = SPDR;							//read value in SPI data reg.
	
	return input;							//return the byte clocked in from SPI slave
}		


/*****************************************************************************
*
*	Function name : Read_DF_status
*
*	Returns :		One status byte. Consult Dataflash datasheet for further
*					decoding info
*
*	Parameters :	None
*
*	Purpose :		Status info concerning the Dataflash is busy or not.
*					Status info concerning compare between buffer and flash page
*					Status info concerning size of actual device
*
******************************************************************************/
unsigned char Read_DF_status (void)
{
	unsigned char result,index_copy;
	
	DF_CS_inactive;							//make sure to toggle CS signal in order
	DF_CS_active;							//to reset dataflash command decoder
	result = DF_SPI_RW(StatusReg);			//send status register read op-code
	result = DF_SPI_RW(0x00);				//dummy write to get result
	
	index_copy = ((result & 0x38) >> 3);	//get the size info from status register
	PageBits   = DF_pagebits[index_copy];	//get number of internal page address bits from look-up table
	
	return result;							//return the read status register value
}


/*****************************************************************************
*
*	Function name : Page_To_Buffer
*
*	Returns :		None
*
*	Parameters :	BufferNo	->	Decides usage of either buffer 1 or 2
*					PageAdr		->	Address of page to be transferred to buffer
*
*	Purpose :		Transfers a page from flash to dataflash SRAM buffer
*					
******************************************************************************/
void Page_To_Buffer (unsigned int PageAdr, unsigned char BufferNo)
{
	DF_CS_inactive;												//make sure to toggle CS signal in order
	DF_CS_active;												//to reset dataflash command decoder
	
	if (1 == BufferNo)											//transfer flash page to buffer 1
	{
		DF_SPI_RW(FlashToBuf1Transfer);							//transfer to buffer 1 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)											//transfer flash page to buffer 2
	{
		DF_SPI_RW(FlashToBuf2Transfer);							//transfer to buffer 2 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 the transfer
	DF_CS_active;
	
	while(!(Read_DF_status() & 0x80));							//monitor the status register, wait until busy-flag is high
}



/*****************************************************************************
*
*	Function name : Buffer_Read_Byte
*
*	Returns :		One read byte (any value)
*
*	Parameters :	BufferNo	->	Decides usage of either buffer 1 or 2
*					IntPageAdr	->	Internal page address
*
*	Purpose :		Reads one byte from one of the dataflash
*					internal SRAM buffers
*
******************************************************************************/
unsigned char Buffer_Read_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)							//read byte from buffer 1
	{
		DF_SPI_RW(Buf1Read);					//buffer 1 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
		data = DF_SPI_RW(0x00);					//read byte
	}
	else
	if (2 == BufferNo)							//read byte 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
		data = DF_SPI_RW(0x00);					//read byte
	}
	
	return data;								//return the read data byte
}



/*****************************************************************************
*
*	Function name : Buffer_Read_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 read
*					*BufferPtr	->	address of buffer to be used for read bytes
*
*	Purpose :		Reads one or more bytes from one of the dataflash
*					internal SRAM buffers, and puts read bytes into
*					buffer pointed to by *BufferPtr
*
******************************************************************************/
void Buffer_Read_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)							//read byte(s) from buffer 1
	{
		DF_SPI_RW(Buf1Read);					//buffer 1 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

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品自拍网站| 在线播放中文一区| 婷婷久久综合九色综合绿巨人| 国产视频不卡一区| 久久精品一区二区| 国产亚洲一区二区三区四区| 久久精品欧美日韩| 国产精品天美传媒沈樵| 亚洲精品一区二区三区福利| 69p69国产精品| 日韩欧美一级在线播放| 制服视频三区第一页精品| 日韩欧美在线综合网| 日韩免费观看高清完整版 | 欧洲亚洲国产日韩| 欧美在线免费播放| 欧美老肥妇做.爰bbww视频| 欧美日韩aaa| 欧美成人精品高清在线播放| 2017欧美狠狠色| 国产精品美女久久福利网站| 成人免费在线视频观看| 亚洲精品国产第一综合99久久| 亚洲免费三区一区二区| 亚洲va韩国va欧美va精品| 青青草一区二区三区| 精品无人区卡一卡二卡三乱码免费卡| 国产真实乱子伦精品视频| 不卡一区在线观看| 欧美精品乱人伦久久久久久| 精品日韩一区二区| 国产精品国产三级国产普通话99 | 午夜精品一区在线观看| 欧美精品丝袜久久久中文字幕| 欧美另类高清zo欧美| 精品久久人人做人人爰| 综合久久一区二区三区| 美女视频黄 久久| 色综合天天综合网天天看片| 制服丝袜亚洲网站| 亚洲日本免费电影| 国产一区二区三区香蕉| 色屁屁一区二区| 精品免费一区二区三区| 亚洲综合色噜噜狠狠| 韩国成人福利片在线播放| 一本大道久久a久久综合婷婷| 欧美精品久久久久久久久老牛影院| 欧美激情中文字幕| 另类小说图片综合网| 色噜噜夜夜夜综合网| 久久午夜老司机| 亚洲午夜久久久久中文字幕久| 国产美女视频91| 欧美日韩国产另类一区| 日韩一区中文字幕| 精品一区二区三区免费视频| 99久久er热在这里只有精品15 | 中文在线一区二区| 美国一区二区三区在线播放| 在线观看91精品国产入口| 国产精品女人毛片| 麻豆91在线播放免费| 在线观看日韩一区| 日韩美女久久久| 国产二区国产一区在线观看| 欧美不卡一区二区三区四区| 午夜精品一区在线观看| 欧美视频完全免费看| 国产精品视频麻豆| 国产成人免费网站| 日韩美女一区二区三区| 日韩精品一区二区三区中文精品| 亚洲国产精品影院| 欧美午夜不卡在线观看免费| 国产精品三级av在线播放| 精品一区二区成人精品| www日韩大片| 国产成人免费视频一区| 久久综合久久综合久久综合| 精品影院一区二区久久久| 欧美一区二区人人喊爽| 乱一区二区av| 精品国产乱码久久久久久久久| 久久99精品国产麻豆婷婷洗澡| 欧美一区二区在线免费播放| 丝袜美腿亚洲一区二区图片| 欧美精品18+| 视频一区在线播放| 制服丝袜日韩国产| 韩日欧美一区二区三区| 久久精品夜色噜噜亚洲aⅴ| 成人性生交大片免费看中文网站| 中文字幕精品一区二区精品绿巨人 | 美女网站视频久久| 欧美一区二区三区喷汁尤物| 国产一区在线不卡| 国产精品网站在线播放| 91免费小视频| 日日摸夜夜添夜夜添精品视频| 欧美一区日本一区韩国一区| 国产一区二区三区美女| 国产精品久久久久aaaa| 91免费看片在线观看| 一区二区日韩av| 日韩小视频在线观看专区| 韩国av一区二区三区在线观看| 国产人妖乱国产精品人妖| 91浏览器打开| 免费成人美女在线观看.| 国产蜜臀97一区二区三区| 在线视频一区二区三| 国产精品一区在线观看乱码| 久久这里只有精品首页| 国产色婷婷亚洲99精品小说| 在线观看免费成人| 国产成人精品三级麻豆| 亚洲线精品一区二区三区八戒| 日韩一区二区三区四区五区六区| 成人国产免费视频| 奇米影视一区二区三区小说| 国产精品色哟哟| 日韩三级免费观看| 欧美性受xxxx黑人xyx性爽| 麻豆91在线看| 亚洲日本va午夜在线影院| 日韩精品专区在线影院观看| av日韩在线网站| 国产在线精品不卡| 日韩中文字幕亚洲一区二区va在线| 国产欧美一区二区在线| 在线不卡中文字幕播放| 91麻豆免费看片| 成人网男人的天堂| 久久成人久久爱| 午夜精品福利久久久| 136国产福利精品导航| 国产无人区一区二区三区| 91精品国产aⅴ一区二区| 色噜噜狠狠色综合中国| 成人网在线播放| 国产高清在线精品| 国内外成人在线视频| 麻豆国产精品官网| 免费在线视频一区| 日本欧美肥老太交大片| 午夜视频久久久久久| 亚洲国产日韩av| 亚洲一区在线视频观看| 国产精品免费视频观看| 久久久午夜精品| 久久综合九色综合久久久精品综合| 欧美日产在线观看| 欧美一级艳片视频免费观看| 欧美日本一道本在线视频| 欧美日韩亚洲综合在线 | 亚洲国产一区二区三区| 综合久久给合久久狠狠狠97色| 欧美在线视频不卡| 国产高清成人在线| 国产成人在线电影| 成人精品高清在线| 91在线丨porny丨国产| 在线视频观看一区| 欧美日韩成人在线一区| 欧美一区二区三区在线电影| 欧美一区二区三区白人| 日韩一级欧美一级| 久久色在线观看| 亚洲国产精品v| 一区二区三区四区不卡视频 | 日韩一二在线观看| 精品久久国产字幕高潮| 久久精品亚洲精品国产欧美 | 欧美亚洲另类激情小说| 欧美日韩成人综合在线一区二区 | 国产色一区二区| 亚洲欧美激情视频在线观看一区二区三区 | 欧美午夜精品理论片a级按摩| 欧日韩精品视频| 日韩视频永久免费| 国产精品伦理在线| 亚洲丰满少妇videoshd| 精品一区二区三区免费视频| 成人综合在线观看| 欧美怡红院视频| 久久嫩草精品久久久精品一| 日韩理论片一区二区| 日韩电影免费在线| 91在线观看美女| 日韩精品一区二区三区中文精品| 国产精品成人免费在线| 蜜桃视频在线观看一区| av电影一区二区| 在线综合+亚洲+欧美中文字幕| 中日韩av电影| 久久99国产精品成人| 91麻豆自制传媒国产之光| 精品久久五月天| 91精品国产综合久久精品app|