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

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

?? dataflash_.h

?? LCD802的中文質量 LCD802的中文質量
?? 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一区二区三区免费野_久草精品视频
成人少妇影院yyyy| 久久久久久久性| 久久看人人爽人人| 亚洲国产综合色| 国产成人亚洲综合色影视| 欧美色图在线观看| 亚洲国产精品成人久久综合一区| 亚洲bt欧美bt精品777| 国产99久久久国产精品免费看| 欧美日韩在线直播| 亚洲乱码中文字幕| 国产麻豆精品视频| 91精品国产欧美一区二区18 | 午夜欧美电影在线观看| 国产一区二区精品久久91| 91精品国产91久久综合桃花 | 欧美最猛性xxxxx直播| 日本一区二区电影| 国产高清精品久久久久| 91精品国产综合久久福利软件| 亚洲精品成人天堂一二三| 懂色av一区二区三区免费看| 精品免费国产二区三区 | 日韩欧美专区在线| 五月激情六月综合| 欧美日韩一区二区三区在线| 亚洲综合色噜噜狠狠| 色欧美片视频在线观看在线视频| 中文文精品字幕一区二区| 国产一区二三区| 国产色产综合产在线视频| 国产一区在线精品| 国产女人aaa级久久久级| 国产精品一区在线观看你懂的| 欧美精品一区二区久久婷婷 | 色香蕉久久蜜桃| 一区二区在线观看视频| 91猫先生在线| 亚洲亚洲精品在线观看| 欧美午夜电影一区| 亚洲一二三区在线观看| 欧美福利电影网| 久久99国产精品免费| 精品免费国产一区二区三区四区| 国产一区在线精品| 日韩久久一区二区| 欧美日韩视频专区在线播放| 日韩精品成人一区二区在线| 日韩一区二区视频在线观看| 激情综合色综合久久| 国产精品免费视频一区| 91黄色免费网站| 日韩精品电影在线| 2023国产精品自拍| 日韩三级电影网址| 国产成人午夜电影网| 国产精品成人一区二区艾草 | 91免费版pro下载短视频| 一级做a爱片久久| 欧美成人精品1314www| 成人性生交大片免费看中文| 亚洲精品视频自拍| 日韩亚洲国产中文字幕欧美| 国产成人免费视频网站高清观看视频| 国产精品天天看| 51精品视频一区二区三区| 国产精品一区二区三区网站| 亚洲制服欧美中文字幕中文字幕| 精品免费国产一区二区三区四区| 99热在这里有精品免费| 日产欧产美韩系列久久99| 国产色婷婷亚洲99精品小说| 欧美乱妇一区二区三区不卡视频| 国产成人免费视频网站高清观看视频| 亚洲一二三四区不卡| 国产午夜精品一区二区三区四区| 欧美系列一区二区| 国v精品久久久网| 日本最新不卡在线| 亚洲天堂中文字幕| 亚洲精品一区二区三区福利| 欧美日韩在线播放一区| 成人精品视频.| 免费成人在线视频观看| 亚洲视频在线一区| 精品久久久久一区二区国产| 91久久国产综合久久| 国内精品在线播放| 日韩在线卡一卡二| 亚洲主播在线观看| 亚洲国产电影在线观看| 精品国产伦理网| 日韩一区二区免费在线电影| 91福利在线免费观看| 成人h动漫精品一区二| 精品一区二区三区久久久| 亚洲18女电影在线观看| 亚洲乱码国产乱码精品精的特点 | 亚洲精品中文字幕在线观看| 久久综合色天天久久综合图片| 欧美一区二区精美| 欧美另类videos死尸| 日本精品视频一区二区| 99久久久国产精品免费蜜臀| 国产乱子伦视频一区二区三区| 免费成人在线网站| 久久国产免费看| 毛片一区二区三区| 理论电影国产精品| 久久精品国内一区二区三区| 日韩av一区二区在线影视| 婷婷综合在线观看| 视频一区在线视频| 日本亚洲一区二区| 蜜臀av性久久久久蜜臀aⅴ流畅| 日韩va欧美va亚洲va久久| 色综合久久综合网欧美综合网| 99久久777色| av不卡在线播放| 在线亚洲精品福利网址导航| 色悠悠久久综合| 欧美日韩大陆一区二区| 欧美日韩激情一区| 精品欧美乱码久久久久久1区2区| 精品国偷自产国产一区| 久久蜜桃av一区精品变态类天堂 | 日韩一区二区三区四区| 91精品婷婷国产综合久久性色| 欧美系列亚洲系列| 日韩欧美色综合| 亚洲精品在线电影| 亚洲欧洲精品成人久久奇米网| 亚洲欧美另类小说视频| 亚洲国产视频在线| 国产一区二区91| 成人av在线播放网址| 欧洲精品一区二区| 日韩欧美国产精品| 国产精品网站在线观看| 一区二区三区欧美久久| 美女精品自拍一二三四| caoporen国产精品视频| 欧美日韩电影在线播放| 久久久国产精华| 一区二区三区国产| 精品一区二区影视| 色综合久久久久综合体| 日韩欧美国产一区二区三区| 国产精品蜜臀av| 午夜电影一区二区三区| 国产不卡高清在线观看视频| 在线观看国产91| 欧美国产一区视频在线观看| 亚洲自拍另类综合| 国产v日产∨综合v精品视频| 在线欧美日韩精品| 久久精品一区二区三区不卡牛牛| 亚洲香蕉伊在人在线观| 国产盗摄精品一区二区三区在线 | 色哟哟一区二区| 久久久久88色偷偷免费| 亚洲国产精品自拍| 成人丝袜视频网| 欧美一区二区免费| 亚洲自拍欧美精品| 99久久久久免费精品国产| 精品久久久久久久久久久院品网| 亚洲激情图片qvod| 国产91丝袜在线观看| 91精品国产综合久久久久久漫画| 国产精品美女久久久久久久久久久| 日日夜夜免费精品视频| av不卡在线观看| 国产女人水真多18毛片18精品视频 | 99re热这里只有精品免费视频| 日韩一区二区三区三四区视频在线观看| 国产精品成人网| 精品无人码麻豆乱码1区2区 | 欧美专区日韩专区| 中国av一区二区三区| 国产一区二区三区高清播放| 51午夜精品国产| 色综合天天综合狠狠| 精品国产一区二区三区久久久蜜月| 污片在线观看一区二区| 97精品国产露脸对白| 国产精品美女久久久久久久久| 精品在线观看视频| 精品理论电影在线| 蜜臀a∨国产成人精品| 欧美精品一卡两卡| 亚洲成人动漫一区| 欧美性生活久久| 一区二区三区在线免费观看| 91在线国产福利| 亚洲欧美国产高清| 99精品视频一区二区三区| 中文字幕电影一区| 99精品视频在线免费观看| 国产精品国产a级|