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

? 歡迎來(lái)到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? dataflash_.h

?? 1602顯示器ICCAVR加庫(kù)函數(shù),1602顯示器ICCAVR加庫(kù)函數(shù)
?? H
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
/******** 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

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一卡二卡三卡日韩欧美| 国产成人精品免费在线| 日本欧美韩国一区三区| 国产精品综合久久| fc2成人免费人成在线观看播放| 欧洲在线/亚洲| 精品蜜桃在线看| 亚洲欧美视频一区| 日韩中文字幕亚洲一区二区va在线 | 中文字幕精品一区| 艳妇臀荡乳欲伦亚洲一区| 麻豆精品在线观看| 色综合天天性综合| 日韩免费观看高清完整版| 国产精品乱码人人做人人爱| 丝瓜av网站精品一区二区| 高清国产一区二区三区| 欧美日韩欧美一区二区| 99久久综合精品| 精品视频在线视频| 国产欧美日韩三区| 午夜不卡在线视频| 成a人片国产精品| 91精品国产免费| 亚洲欧洲日本在线| 久久99国产乱子伦精品免费| 一本大道久久a久久综合| 精品av综合导航| 亚洲一区精品在线| 成人午夜免费视频| 日韩欧美中文字幕精品| 一区二区三区精品视频| 国产98色在线|日韩| 欧美一区二区精品在线| 一区二区三区在线观看国产| 国产麻豆成人传媒免费观看| 欧美高清视频一二三区 | 99久久精品一区| 精品免费视频.| 亚洲一二三四区| www.欧美日韩国产在线| 久久久久高清精品| 蜜桃av一区二区| 欧美色图片你懂的| 亚洲欧美一区二区三区国产精品 | 国产三级三级三级精品8ⅰ区| 日韩影视精彩在线| 欧美日韩精品综合在线| 亚洲伦在线观看| 99久久亚洲一区二区三区青草| 久久久噜噜噜久噜久久综合| 日本不卡中文字幕| 欧洲一区二区三区免费视频| 中文字幕一区二区不卡| 成人小视频免费在线观看| 精品少妇一区二区三区在线视频| 午夜av一区二区| 欧美精品在线视频| 亚洲国产精品久久不卡毛片 | 亚洲成国产人片在线观看| 色综合网站在线| 亚洲精品日韩综合观看成人91| 成人免费视频国产在线观看| 国产日韩精品一区二区三区在线| 韩国女主播成人在线| 日韩欧美成人午夜| 美女视频第一区二区三区免费观看网站| 欧美日韩免费视频| 日日摸夜夜添夜夜添精品视频| 欧美日韩激情一区| 偷拍自拍另类欧美| 91精品国产综合久久国产大片| 日日夜夜精品视频免费| 欧美一级免费大片| 麻豆精品精品国产自在97香蕉| 日韩欧美视频一区| 国产又粗又猛又爽又黄91精品| 精品国内片67194| 国产福利不卡视频| 国产精品色婷婷| 97se亚洲国产综合自在线| 亚洲精品乱码久久久久久日本蜜臀| 一本大道久久a久久综合| 亚洲福利一区二区| 日韩午夜av电影| 国产成人在线免费| 中文字幕日韩欧美一区二区三区| 91亚洲大成网污www| 亚洲最大色网站| 7777精品伊人久久久大香线蕉经典版下载| 天堂av在线一区| 精品国产电影一区二区| 粉嫩久久99精品久久久久久夜| **欧美大码日韩| 欧美日韩久久不卡| 国产综合一区二区| 国产精品第五页| 欧美性xxxxxx少妇| 蜜桃视频在线一区| 国产精品人人做人人爽人人添| 色哟哟国产精品免费观看| 亚洲成a人片在线不卡一二三区| 欧美大胆人体bbbb| 99九九99九九九视频精品| 亚洲午夜视频在线观看| 精品日韩在线一区| 99re热这里只有精品免费视频| 一区二区三区日韩欧美精品| 日韩小视频在线观看专区| 国产福利电影一区二区三区| 一片黄亚洲嫩模| 久久久精品综合| 91免费在线播放| 另类人妖一区二区av| 国产精品久久久久久久浪潮网站| 欧美亚洲图片小说| 国产美女主播视频一区| 亚洲午夜私人影院| 亚洲国产精品二十页| 在线成人免费观看| 99热这里都是精品| 另类人妖一区二区av| 亚洲男人的天堂在线aⅴ视频| 亚洲激情综合网| 日韩三级电影网址| 色综合久久综合| 精品亚洲国内自在自线福利| 亚洲精品中文字幕在线观看| 欧美v日韩v国产v| 欧美在线看片a免费观看| 国产精品18久久久久久久久| 亚洲国产毛片aaaaa无费看| 国产日韩欧美电影| 91精品国产品国语在线不卡| 99精品偷自拍| 国产乱淫av一区二区三区| 五月天精品一区二区三区| 1000精品久久久久久久久| 久久久久久久久久电影| 欧美日韩www| 91丨porny丨国产入口| 国产一区二区h| 日韩成人精品在线观看| 悠悠色在线精品| 中文字幕一区二区三区精华液 | 国产不卡高清在线观看视频| 婷婷久久综合九色综合伊人色| 1000精品久久久久久久久| 久久免费看少妇高潮| 欧美丰满高潮xxxx喷水动漫| 色综合网色综合| bt欧美亚洲午夜电影天堂| 国产一区二区在线观看视频| 男男gaygay亚洲| 图片区日韩欧美亚洲| 一区二区成人在线观看| 亚洲色图清纯唯美| 国产精品入口麻豆九色| 2020国产精品自拍| 日韩免费电影一区| 日韩一区二区不卡| 91精品国产麻豆国产自产在线| 欧美亚洲综合色| 欧美性感一区二区三区| 在线观看日韩国产| 色网站国产精品| 色综合咪咪久久| 91免费视频网| 91免费版在线看| 91在线免费视频观看| 99久久99久久精品国产片果冻| 成人av手机在线观看| 不卡高清视频专区| 91在线porny国产在线看| av中文字幕亚洲| 99re热视频精品| 91在线观看污| 色先锋久久av资源部| 欧美影院午夜播放| 欧美影片第一页| 欧美三级三级三级| 欧美日韩亚洲综合| 69堂成人精品免费视频| 欧美一区二视频| 欧美成人精品高清在线播放| 欧美成人video| 26uuu精品一区二区三区四区在线 26uuu精品一区二区在线观看 | 精品理论电影在线观看| 欧美mv日韩mv国产| 国产日韩精品视频一区| 国产欧美精品国产国产专区| 国产精品免费视频观看| 亚洲视频电影在线| 亚洲国产日韩综合久久精品| 三级欧美韩日大片在线看| 久久www免费人成看片高清| 国产一区免费电影| 成人听书哪个软件好| 91免费版在线| 欧美伦理电影网|