⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 memory.h

📁 at45db161d的C源程序
💻 H
字号:
/****************************************************************
*          ATMEL的DATAFLASH操作函数库(FOR AT45DB161D)         *
*                                                               *
*                     作者:gxlujd(彩虹)                      *
*             最后修改时间:2007年2月18日(大年初一)           *
*                                                               *
*    感谢www.ouravr.com、阿莫和坛子里的哥们一直以来的热心帮助   *
*                                                               *
*    如果这些资源能帮到你,请保留以上这些信息,同时也请你把自   *
*    己的一些日常积累拿出来分享,这个世界需要更多的无私开源,   *
*    别让金钱和利益蒙住了内心的真诚,谢谢!                     *
*****************************************************************/



#ifndef _MEMORY_H
#define _MEMORY_H 1


/*DATA_FLASH端口及指令定义*/
#define DF_SPI_ON			SPCR = 0x5F
#define DF_SPI_OFF			SPCR = 0x00
#define DF_CON_PORT			PORTC
#define DF_STA_PORT			PINC
#define DF_STATE			PC2
#define DF_CS_1				PC1
#define DF_SELECT_1			DF_CON_PORT &=~_BV(DF_CS_1)
#define DF_DESELECT_1		DF_CON_PORT |=_BV(DF_CS_1)


#define BUFFER_1_WRITE 0x84					// 写入第一缓冲区
#define BUFFER_2_WRITE 0x87					// 写入第二缓冲区
#define BUFFER_1_READ 0xD4					// 读取第一缓冲区
#define BUFFER_2_READ 0xD6					// 读取第二缓冲区
#define B1_TO_MM_PAGE_PROG_WITH_ERASE 0x83	// 将第一缓冲区的数据写入主存储器(擦除模式)
#define B2_TO_MM_PAGE_PROG_WITH_ERASE 0x86	// 将第二缓冲区的数据写入主存储器(擦除模式)
#define MM_PAGE_TO_B1_XFER 0x53				// 将主存储器的指定页数据加载到第一缓冲区
#define MM_PAGE_TO_B2_XFER 0x55				// 将主存储器的指定页数据加载到第二缓冲区
#define PAGE_ERASE 0x81						// 页删除(每页512/528字节)
#define SECTOR_ERASE 0x7C					// 扇区擦除(每扇区128K字节)
#define READ_STATE_REGISTER 0xD7			// 读取状态寄存器


extern unsigned char DF_buffer[528];


void write_SPI				(unsigned char data);
void DF_format				(void);
void DF_page_earse			(unsigned int page);
void DF_write_page			(unsigned int page);
void DF_read_page			(unsigned int page);
void DF_mm_read_page		(unsigned int page);
unsigned char DF_read_reg	(void);
void DF_wait_busy			(void);
void DF_mm_to_buf			(unsigned char buffer,unsigned int page);
unsigned char DF_read_buf	(unsigned char buffer,unsigned int start_address,unsigned int length);
unsigned char DF_write_buf	(unsigned char buffer,unsigned int start_address,unsigned int length);
void DF_buf_to_mm			(unsigned char buffer,unsigned int page);


#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -