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

📄 memory card.h

📁 AVR读写CF卡的应用例子
💻 H
字号:
#ifndef __MEMORY_CARD
#define __MEMORY_CARD 1

unsigned char getDriveNumber(void);
void setDriveNumber(unsigned char);

void setOperatingMode(unsigned char);
unsigned char send_command(unsigned char cmd, unsigned char drive,unsigned long address,unsigned char nSectors);
unsigned char writeSector(unsigned long address);
unsigned char readSector(unsigned long address);

unsigned char getByteFromSector(unsigned int);
void setByteInSector(unsigned int,unsigned char);

unsigned long initMemoryCard(void);




// CF registers

#define CORCON 0x0200
#define SOCKET_COPY 0x0206

// registers

#define RD_DATA 0x0
#define WR_DATA 0x0
#define ERROR_REG 0x1
#define FEATURES 0x1
#define SECTOR_CNT 0x2
#define SECTOR_NO 0x3
#define CYLINDER_LO 0x4
#define CYLINDER_HI 0x5
#define DRIVE_HEAD 0x6
#define STATUS 0x7
#define COMMAND 0x7
#define ALT_STATUS 0xe
#define DEVICE_CTRL 0xe
#define DRIVE_ADDRESS 0xf

// register bits

#define BAD_BLOCK 0x80
#define UNCORRECTABLE 0x40
#define SECTOR_ID_ERROR 0x10
#define ABORT 0x04
#define GENERAL_ERROR 0x01

#define LBA 0x40
#define DRIVE_NO 0x10

#define BUSY 0x80
#define READY 0x40
#define WRITE_FAULT 0x20
#define CARD_READY 0x10
#define DATA_REQUEST 0x08
#define CORRECTABLE_ERROR 0x04
#define ERROR 0x01



// CORCON values

#define MEMORY_MAPPED 0
#define IO_MAPPED 1
#define IO_MAPPED_1F 2
#define IO_MAPPED_17 3

// ATA COMMANDS

#define READ_SECTOR 0x20
#define WRITE_SECTOR 0x30

#define IDENTIFY_DRIVE 0xec

#endif

⌨️ 快捷键说明

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