?? compact.c
字號:
//###########################################################
// File: compact.c
//
// Read-/Writeroutines for CompactFlash in LBA mode.
// CHS mode not supported.
//
//#########################################################################
// Last change: 09.05.2004
//#########################################################################
// holger.klabunde@t-online.de
// http://home.t-online.de/home/holger.klabunde/homepage.htm
//#########################################################################
// Compiler: AVR-GCC 3.2
//#########################################################################
#include <io.h>
#include "dos.h"
#ifdef COMPACTFLASH_CARD
//######################################################
unsigned char CFReadSector(unsigned long lba, unsigned char *buf)
//######################################################
{
unsigned int i;
unsigned char by;
unsigned char *p;
if(lba>=maxsect) return 1; //sectornumber too big
if(CFWaitReady()) return 1;
// CFWriteAdr(CF_FEATURES,0); //Brauch ich nicht
CFWriteAdr(CF_SECCOUNT,1); //einen Sektor lesen
by=(unsigned char)lba;
CFWriteAdr(CF_LBA0,by); //D7..0
by=(unsigned char)(lba>>8);
CFWriteAdr(CF_LBA1,by); //D15..8
by=(unsigned char)(lba>>16);
CFWriteAdr(CF_LBA2,by); //D23..16
by=(unsigned char)(lba>>24);
by&=0x0F; //Nur die vier unteren Bits g黮tig
by|=0xE0; //LBA-Mode Drive0
CFWriteAdr(CF_LBA3,by); //D27..24
CFWriteAdr(CF_STACOM,CF_READ_SEC);
if(CFWaitDrq()) return 2;
p=buf;
CF_DATA_DIR_IN();
CFSetAdr(CF_IO);
CF_CS_OFF();
for(i=0; i<BYTE_PER_SEC; i++)
{
CF_RD_OFF();
NOP(); //Schon bei 8MHz mu
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -