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

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

?? dataflash_.h

?? iccavr的各模塊的函數(shù)庫
?? 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

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩黄色免费网站| 国产精品电影一区二区| 肉丝袜脚交视频一区二区| 欧美私人免费视频| 香港成人在线视频| 日韩欧美高清dvd碟片| 国产真实乱子伦精品视频| 国产亚洲精品7777| 99久久99久久精品国产片果冻 | 久久精品国产在热久久| 日韩精品综合一本久道在线视频| 美女被吸乳得到大胸91| 精品处破学生在线二十三| 国产成人在线免费观看| 一区二区三区四区高清精品免费观看 | 精品国产乱码91久久久久久网站| 国产成人亚洲综合a∨婷婷图片| 中文字幕一区二区三| 欧美亚洲国产一区在线观看网站 | 日韩电影在线观看电影| 久久久久99精品一区| 99久久免费视频.com| 丝袜a∨在线一区二区三区不卡| 日韩欧美视频在线| av亚洲精华国产精华精华| 亚洲一区在线电影| 欧美成人精品3d动漫h| av亚洲精华国产精华精| 日韩国产精品久久久| 国产精品国产三级国产普通话三级 | 欧美亚男人的天堂| 国产在线播放一区| 亚洲成人免费观看| 国产三级一区二区| 欧美日韩国产精选| 成人美女在线视频| 精品一区二区在线观看| 一区二区三区欧美激情| 日韩视频不卡中文| 日本乱码高清不卡字幕| 国产成人在线观看免费网站| 日韩电影在线一区二区| 怡红院av一区二区三区| 久久精子c满五个校花| 一本久久a久久精品亚洲| 国产一区二区三区av电影| 亚洲国产一区在线观看| 国产精品视频一二| 精品国产免费久久 | 欧日韩精品视频| 激情综合色综合久久| 亚洲午夜国产一区99re久久| 国产精品国产三级国产三级人妇| 日韩三级在线观看| 日本乱码高清不卡字幕| 99国产精品久| 成人激情图片网| 国产麻豆午夜三级精品| 美女一区二区视频| 亚洲 欧美综合在线网络| 亚洲精品中文字幕乱码三区| 国产精品久久夜| 亚洲国产精品二十页| 久久天天做天天爱综合色| 精品日韩欧美一区二区| 91精品在线麻豆| 欧美精品丝袜久久久中文字幕| 色8久久人人97超碰香蕉987| 91美女片黄在线观看91美女| a4yy欧美一区二区三区| av电影在线观看一区| 成人黄页毛片网站| 成人精品国产免费网站| 盗摄精品av一区二区三区| 国产盗摄精品一区二区三区在线| 国产精品乡下勾搭老头1| 国产传媒久久文化传媒| 高清成人在线观看| 成人av资源下载| 91原创在线视频| 91蜜桃视频在线| 欧美在线观看视频一区二区三区 | 日本伦理一区二区| 欧美在线观看视频一区二区三区| 欧美影院精品一区| 在线成人免费视频| 日韩精品一区二区在线观看| 久久综合狠狠综合| 中文字幕电影一区| 亚洲欧美国产77777| 亚洲一二三区视频在线观看| 天天影视网天天综合色在线播放 | 偷拍自拍另类欧美| 免费国产亚洲视频| 国产一区二区在线电影| 国产成人精品在线看| 色综合久久中文综合久久牛| 欧美日韩一区小说| 日韩午夜中文字幕| 久久久久久99久久久精品网站| 国产精品二区一区二区aⅴ污介绍| 亚洲精品成人精品456| 爽好久久久欧美精品| 韩日欧美一区二区三区| a级高清视频欧美日韩| 欧美日韩国产影片| www久久精品| 亚洲人成网站影音先锋播放| 日韩精品亚洲一区| 国产mv日韩mv欧美| 欧美日韩一区二区在线视频| 日韩美女主播在线视频一区二区三区 | 欧美天堂亚洲电影院在线播放| 4438x亚洲最大成人网| 久久久亚洲午夜电影| 亚洲精品一卡二卡| 久久综合综合久久综合| 91婷婷韩国欧美一区二区| 欧美一级在线观看| 综合欧美一区二区三区| 青青青伊人色综合久久| www.欧美.com| 欧美草草影院在线视频| 午夜精品免费在线观看| 顶级嫩模精品视频在线看| 777a∨成人精品桃花网| 国产精品国产三级国产有无不卡 | 在线精品观看国产| 精品免费视频.| 一片黄亚洲嫩模| 高清视频一区二区| 日韩一二三区视频| 亚洲一区二区三区国产| 成人天堂资源www在线| 日韩视频永久免费| 一区二区三区在线高清| 国产91精品免费| 日韩视频一区二区三区在线播放| 亚洲免费观看视频| 国产不卡在线播放| 日韩三级伦理片妻子的秘密按摩| 亚洲裸体在线观看| 国产.精品.日韩.另类.中文.在线.播放| 欧美精品一二三| 一区二区成人在线视频 | 一区二区三区电影在线播| 粉嫩蜜臀av国产精品网站| 日韩欧美国产一区二区三区| 亚洲一区av在线| 国产亚洲制服色| 国产中文一区二区三区| 欧美变态tickle挠乳网站| 日韩中文字幕不卡| 欧美日韩一区二区在线观看 | www.欧美亚洲| 中文字幕免费观看一区| 国产成人亚洲综合色影视| 26uuu色噜噜精品一区二区| 蜜乳av一区二区三区| 欧美日韩精品欧美日韩精品| 亚洲一区精品在线| 欧美专区日韩专区| 一区二区在线免费观看| 色综合咪咪久久| 亚洲图片你懂的| 色噜噜狠狠成人网p站| 亚洲欧洲制服丝袜| 色丁香久综合在线久综合在线观看| 综合精品久久久| 在线中文字幕一区| 亚洲福利一二三区| 8v天堂国产在线一区二区| 日韩电影在线看| 欧美成人一区二区三区片免费 | 亚洲国产成人av好男人在线观看| 在线视频观看一区| 婷婷中文字幕综合| 欧美成人一区二区三区| 国产一区在线看| 国产欧美日产一区| 91丨九色丨蝌蚪富婆spa| 亚洲一区二区三区在线| 欧美高清激情brazzers| 蜜臀99久久精品久久久久久软件| 日韩欧美电影一区| 国产精品77777| 亚洲视频一区二区免费在线观看 | 欧美成人r级一区二区三区| 国产麻豆精品久久一二三| 日本一区二区综合亚洲| 色综合天天综合网天天狠天天| 亚洲一区二区四区蜜桃| 日韩三级精品电影久久久| 国产精品白丝av| 亚洲欧美在线高清| 91精品国产丝袜白色高跟鞋| 国产麻豆视频一区| 一区二区高清免费观看影视大全| 欧美一卡在线观看| 成人免费的视频|