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

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

?? dataflash_.h

?? LCD802的中文質(zhì)量 LCD802的中文質(zhì)量
?? 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一区二区三区免费野_久草精品视频
亚洲一区二区在线观看视频| 91免费看视频| 在线播放国产精品二区一二区四区| 国产精品久久毛片a| 成人激情黄色小说| 亚洲视频一区二区免费在线观看| 97精品国产97久久久久久久久久久久| 中文字幕在线不卡视频| 91美女福利视频| 亚洲sss视频在线视频| 91精品免费在线| 国产精品一区在线观看你懂的| 久久久99免费| 色老汉一区二区三区| 婷婷成人激情在线网| 精品国产一区久久| 99麻豆久久久国产精品免费| 亚洲黄色av一区| 亚洲欧美日本在线| 日韩午夜在线观看| 丰满白嫩尤物一区二区| 一卡二卡三卡日韩欧美| 777午夜精品视频在线播放| 精品一区二区免费看| 中文字幕制服丝袜一区二区三区| 欧美亚洲国产一区在线观看网站| 免费精品99久久国产综合精品| 国产亚洲精品免费| 欧美日本一区二区| 成人小视频免费在线观看| 亚洲成a人v欧美综合天堂下载 | 久久久久久久精| 91黄色免费看| 国产一区视频导航| 一区2区3区在线看| 欧美极品少妇xxxxⅹ高跟鞋| 欧美日韩国产另类一区| 成人永久看片免费视频天堂| 香蕉加勒比综合久久| 国产精品色噜噜| 日韩欧美视频在线| 色婷婷精品久久二区二区蜜臀av| 国内精品伊人久久久久av一坑| 亚洲精品伦理在线| 久久伊人蜜桃av一区二区| 欧美色综合影院| 成人深夜福利app| 精品亚洲aⅴ乱码一区二区三区| 亚洲精品国产高清久久伦理二区| 精品国产乱码久久久久久免费| 色婷婷久久99综合精品jk白丝| 高清不卡在线观看| 黄色精品一二区| 男人的天堂久久精品| 亚洲综合免费观看高清在线观看| 中文字幕免费一区| 日韩精品一区二区三区在线观看 | 亚洲乱码国产乱码精品精98午夜 | 精品日韩一区二区三区免费视频| 色婷婷综合久色| 91视频在线观看| 99久久婷婷国产综合精品电影| 国产精品99久久久久久有的能看| 奇米影视7777精品一区二区| 亚洲一区二区三区国产| 日韩一区日韩二区| 一区在线观看免费| 亚洲欧洲在线观看av| 国产精品沙发午睡系列990531| 亚洲va韩国va欧美va精品| 一区二区三区日韩欧美| 自拍偷自拍亚洲精品播放| 国产精品九色蝌蚪自拍| 国产精品久久毛片av大全日韩| 日本一区二区不卡视频| 中文字幕欧美激情| 中文字幕欧美国产| 综合久久一区二区三区| 椎名由奈av一区二区三区| 亚洲视频免费看| 亚洲男人的天堂在线观看| 亚洲精品免费在线观看| 亚洲一区在线视频| 性做久久久久久免费观看| 三级一区在线视频先锋| 日本色综合中文字幕| 日产国产欧美视频一区精品 | 一区二区三区免费| 亚洲一区二区三区四区不卡| 亚洲福利一二三区| 日本最新不卡在线| 国产一区二区美女诱惑| 懂色av中文字幕一区二区三区 | 欧美男人的天堂一二区| 欧美绝品在线观看成人午夜影视| 在线成人免费视频| 久久久久久久久久久99999| 国产精品嫩草影院av蜜臀| 亚洲三级视频在线观看| 亚洲一区二区欧美日韩| 午夜欧美2019年伦理| 精品一区二区三区av| 99久久精品免费观看| 欧美三级日韩三级| 精品伦理精品一区| 亚洲情趣在线观看| 秋霞国产午夜精品免费视频| 国产精品99久久久| 欧美体内she精高潮| 精品日韩一区二区三区免费视频| 中文字幕欧美国产| 亚洲成人一区在线| 国产精品综合久久| 在线免费不卡电影| 精品国产不卡一区二区三区| 国产精品久久久久久久久免费相片| 亚洲一区二区在线观看视频 | 色婷婷激情一区二区三区| 欧美老女人在线| 国产精品午夜在线| 日本中文在线一区| 东方欧美亚洲色图在线| 欧美视频在线观看一区二区| 久久久久高清精品| 亚洲3atv精品一区二区三区| 国产精品一卡二卡| 欧美日韩电影一区| 国产精品全国免费观看高清| 石原莉奈一区二区三区在线观看| 精品蜜桃在线看| 亚洲宅男天堂在线观看无病毒 | 成人激情免费视频| 精品日韩欧美在线| 亚洲国产日韩一区二区| 成人一区二区三区| 日韩欧美中文字幕精品| 亚洲午夜久久久久| jlzzjlzz国产精品久久| 日韩美女视频在线| 午夜精品福利一区二区蜜股av | 91天堂素人约啪| 国产视频一区在线播放| 免费高清在线视频一区·| 日本精品视频一区二区| 国产情人综合久久777777| 蜜桃久久久久久久| 欧美日韩一区二区三区不卡| 亚洲日本成人在线观看| 成人高清伦理免费影院在线观看| 日韩免费看的电影| 日韩国产高清在线| 欧美日韩一区二区三区视频 | 日本一区二区三区四区| 久久99国产精品久久99 | 99久久伊人精品| 久久久久久免费网| 国产一区二区在线看| 日韩欧美视频一区| 久久国产人妖系列| 日韩欧美一二三| 免费在线观看不卡| 欧美一区二区三区在| 日韩av成人高清| 正在播放亚洲一区| 五月婷婷欧美视频| 欧美日韩日本视频| 五月婷婷综合网| 日韩一区国产二区欧美三区| 日韩电影在线看| 欧美高清hd18日本| 丝袜亚洲另类欧美| 91精品国产福利在线观看 | 日韩欧美在线影院| 蜜桃在线一区二区三区| 日韩精品一区二区三区在线观看| 麻豆视频一区二区| 国产欧美久久久精品影院| 成人免费视频免费观看| 亚洲蜜臀av乱码久久精品蜜桃| 91福利在线看| 午夜免费欧美电影| 欧美成人性战久久| 国产乱人伦偷精品视频不卡| 欧美国产在线观看| 91年精品国产| 日韩一区精品字幕| 久久你懂得1024| 一本色道a无线码一区v| 午夜天堂影视香蕉久久| 欧美大片一区二区| 成人午夜视频在线观看| 亚洲卡通欧美制服中文| 7777精品伊人久久久大香线蕉超级流畅 | 色噜噜偷拍精品综合在线| 亚洲电影激情视频网站| 精品国产网站在线观看| 成人的网站免费观看| 亚洲一区在线观看视频| www国产成人| 色狠狠一区二区三区香蕉|