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

📄 cf_io.h

📁 Nokia3510i手机液晶屏驱动程序
💻 H
字号:
#include <avr\sfr_defs.h>

typedef struct
{
	uint16_t Signature;
	uint16_t Cylinders;
	uint16_t Heads;
	uint16_t SectorsPerTrack;
	uint32_t TotalSectors;
	char SerialNumber[20];
	char ModelNumber[40];
	uint32_t LBAs;
	uint32_t TotalSize;
} CF_TInfo;

#define CF_DATA_REG				_SFR_MEM8(0x8000)
#define CF_ERROR_REG			_SFR_MEM8(0x8100)
#define CF_FEATURE_REG			_SFR_MEM8(0x8100)
#define CF_SECTOR_COUNT_REG		_SFR_MEM8(0x8200)
#define CF_SECTOR_REG			_SFR_MEM8(0x8300)
#define CF_LBA_0_7_REG			_SFR_MEM8(0x8300)
#define CF_CYLINDER_L_REG		_SFR_MEM8(0x8400)
#define CF_LBA_8_15_REG			_SFR_MEM8(0x8400)
#define CF_CYLINDER_H_REG		_SFR_MEM8(0x8500)
#define CF_LBA_16_23_REG		_SFR_MEM8(0x8500)
#define CF_HEAD_REG				_SFR_MEM8(0x8600)
#define CF_LBA_24_27_REG		_SFR_MEM8(0x8600)
#define CF_DRIVER_REG			_SFR_MEM8(0x8600)
#define CF_STATUS_REG			_SFR_MEM8(0x8700)
#define CF_COMMAND_REG			_SFR_MEM8(0x8700)

#define CF_CMD_DIAGNOSTIC		0x90	//诊断
#define CF_CMD_IDENTITY			0xec	//读CF卡信息
#define CF_CMD_READSECTOR		0x20	//读扇区
#define CF_CMD_SETFEATURE		0xef	//设置特性
#define CF_CMD_SLEEP			0x99	//进入Sleep模式(省电)
#define	CF_CMD_STANDBY			0x96	//进入Standby模式
#define CF_CMD_WRITESECTOR		0x30	//写扇区

#define CF_LBA_MASTER			0xe0
#define CF_LBA_SLAVE			0xf0

uint16_t CF_DataOffset;
uint32_t CF_CurrentLBA;

uint8_t CF_Initialize(void);		//初始化CF卡参数并诊断
void CF_ChangeDrive(uint8_t d);	//改变当前的驱动器(d==0为Master、d==1为Slave)
uint8_t CF_GetCardInfo(CF_TInfo *I);	//获取CF卡信息
uint8_t CF_ReadSector(uint16_t cylinder, uint8_t head, uint8_t sector, uint8_t sectorcount, char *buf);		//读扇区
uint8_t CF_LBAReadSector(uint32_t LBA, uint8_t sectorcount, char *buf);		//以LBA方式读扇区
uint8_t CF_WriteSector(uint16_t cylinder, uint8_t head, uint8_t sector, uint8_t sectorcount, char *buf);	//写扇区
uint8_t CF_LBAWriteSector(uint32_t LBA, uint8_t sectorcount, char *buf);	//以LBA方式写扇区
void CF_Sleep(void);
void CF_Standby(void);

uint8_t CF_LBAOpen(uint32_t LBA);
uint8_t CF_LBAReadb(void);
uint16_t CF_LBAReadw(void);
uint32_t CF_LBAReadl(void);
void CF_LBASeek(uint16_t o);
void CF_LBAClose(void);

⌨️ 快捷键说明

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