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

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

?? dataflash_.h

?? 1602顯示器ICCAVR加庫函數,1602顯示器ICCAVR加庫函數
?? 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爽爽久久 | 国产精品一区二区三区乱码| 亚洲一区在线观看网站| 26uuu欧美| 欧美二区三区的天堂| 99久久精品国产网站| 麻豆高清免费国产一区| 一区二区欧美国产| 国产精品久久久久影院| 精品福利二区三区| 欧美三级中文字幕在线观看| 不卡电影一区二区三区| 国产精品99久久久久久宅男| 91久久线看在观草草青青| 在线观看中文字幕不卡| 国产成人精品午夜视频免费| 亚洲图片欧美色图| 成人欧美一区二区三区小说| www一区二区| 91精品国产综合久久精品麻豆 | 国产精品国产三级国产aⅴ入口| 中文幕一区二区三区久久蜜桃| 亚洲欧洲日韩在线| 亚洲一区二区三区小说| 婷婷成人激情在线网| 黑人精品欧美一区二区蜜桃| 大陆成人av片| 欧美在线一区二区三区| 日韩欧美中文一区| 欧美国产激情二区三区| 亚洲国产日日夜夜| 韩日欧美一区二区三区| 99re热这里只有精品免费视频| 欧美日产国产精品| 久久亚洲春色中文字幕久久久| 国产精品久久网站| 轻轻草成人在线| 国产999精品久久久久久绿帽| 91影视在线播放| 欧美一区二区三区四区高清| 欧美高清在线一区| 天天色天天操综合| 成人黄色一级视频| 欧美另类z0zxhd电影| 欧美国产激情二区三区| 午夜一区二区三区在线观看| 国产一区二区在线看| 欧美亚洲高清一区| 久久久久久久精| 亚洲h动漫在线| 国产成人欧美日韩在线电影| 欧美亚州韩日在线看免费版国语版| 精品国产免费久久| 亚洲精品综合在线| 国产伦精品一区二区三区免费迷 | 国产一区二区0| 欧美日韩精品一区二区三区四区| 中日韩免费视频中文字幕| 丝袜美腿亚洲一区二区图片| av在线不卡电影| 日韩精品一区二区三区视频| 亚洲午夜久久久久中文字幕久| 国产精品亚洲午夜一区二区三区 | 精品福利二区三区| 亚洲bt欧美bt精品777| 99综合影院在线| 26uuu另类欧美| 日韩av不卡一区二区| 色综合色狠狠天天综合色| 久久精品视频在线免费观看| 视频一区二区中文字幕| 色噜噜夜夜夜综合网| 中文字幕第一区综合| 六月丁香婷婷色狠狠久久| 欧美在线观看禁18| 亚洲欧洲精品天堂一级| 国产一区二区91| 精品国产乱码久久久久久图片| 性欧美疯狂xxxxbbbb| 91国偷自产一区二区三区观看| 国产精品国产三级国产普通话99| 寂寞少妇一区二区三区| 欧美一区二区大片| 亚洲aaa精品| 欧美日韩一区国产| 亚洲综合精品自拍| 91久久久免费一区二区| 亚洲免费观看视频| 99久久综合色| 国产精品高潮呻吟| 丰满放荡岳乱妇91ww| 国产香蕉久久精品综合网| 国产一区二区三区在线看麻豆| 欧美电视剧在线观看完整版| 蜜臀精品久久久久久蜜臀 | 亚洲精品成a人| 色婷婷亚洲精品| 亚洲激情六月丁香| 在线影院国内精品| 亚洲一区二区四区蜜桃| 91福利精品视频| 亚洲国产精品一区二区久久恐怖片| 97精品超碰一区二区三区| 亚洲男同1069视频| 欧美午夜电影一区| 日本网站在线观看一区二区三区| 欧美一区二区三区视频在线| 日av在线不卡| 亚洲精品一区二区三区在线观看| 精品一区二区成人精品| 国产欧美精品一区| 成年人网站91| 亚洲一区在线看| 欧美一区午夜精品| 国产一区二区三区国产| 国产精品福利影院| 91极品视觉盛宴| 日本欧美久久久久免费播放网| 精品国一区二区三区| 成人一级片在线观看| 亚洲桃色在线一区| 欧美午夜精品久久久| 久久精品久久久精品美女| 国产欧美1区2区3区| 一本久道中文字幕精品亚洲嫩 | 波多野结衣的一区二区三区| 一区二区三区欧美| 日韩三级高清在线| 国产成人免费视频一区| 亚洲综合色成人| 日韩欧美国产麻豆| 成人永久aaa| 亚洲成人资源网| 久久久久久免费网| 一本久道久久综合中文字幕| 青草国产精品久久久久久| 国产喂奶挤奶一区二区三区| 在线看日韩精品电影| 精品一区二区三区视频在线观看| 国产精品久久久久久久久快鸭| 欧洲精品一区二区三区在线观看| 亚洲444eee在线观看| 国产亚洲精品福利| 欧美系列日韩一区| 国产精品一区一区| 亚洲va在线va天堂| 欧美极品xxx| 欧美一区三区四区| 成人激情校园春色| 日本伊人午夜精品| 亚洲精品乱码久久久久久久久 | 欧美一区二区在线视频| 大陆成人av片| 蜜臀久久99精品久久久画质超高清| 国产精品成人在线观看| 91精品国产乱码| 色综合久久综合网| 国产成人aaa| 久久成人免费网| 一片黄亚洲嫩模| 亚洲国产精品99久久久久久久久| 欧美三级视频在线观看| 丰满白嫩尤物一区二区| 奇米影视一区二区三区| 亚洲欧美日韩在线播放| 国产亚洲一区二区三区| 在线电影院国产精品| av亚洲产国偷v产偷v自拍| 久久se精品一区精品二区| 亚洲第四色夜色| 亚洲乱码一区二区三区在线观看| 久久精品视频网| 欧美电影免费提供在线观看| 欧美在线制服丝袜| 色综合久久88色综合天天| 国产成人超碰人人澡人人澡| 蜜桃视频在线观看一区二区| 亚洲国产精品麻豆| 亚洲伦在线观看| 国产精品毛片无遮挡高清| www久久精品| 日韩欧美你懂的| 日韩色在线观看| 日韩亚洲欧美成人一区| 欧美日韩一区二区三区在线 | 久久只精品国产| 日韩欧美一二三| 日韩欧美精品在线| 欧美一个色资源| 91精品国产综合久久久蜜臀图片| 在线亚洲一区二区| 在线影院国内精品| 色狠狠桃花综合| 色哟哟国产精品| 色综合视频在线观看| 91香蕉视频黄| 91香蕉国产在线观看软件|