關於8051讀取CF卡的問題 |
答題得分者是:foreman
|
yrchen
一般會員 發表:1 回覆:0 積分:0 註冊:2007-03-27 發送簡訊給我 |
|
derrenbol1
中階會員 發表:5 回覆:113 積分:93 註冊:2004-12-09 發送簡訊給我 |
|
foreman
高階會員 發表:3 回覆:124 積分:190 註冊:2004-09-10 發送簡訊給我 |
|
foreman
高階會員 發表:3 回覆:124 積分:190 註冊:2004-09-10 發送簡訊給我 |
大大:
找一下以前寫的,請參考 <textarea class="cpp" rows="10" cols="60" name="code"> void wcf(BYTE offset,BYTE v)//此函式因硬體而異 { TRISD=0; PORTG=offset; PORTD=v; PORTE=0x51; Delay1TCY(); PORTE=7; Delay1TCY(); } BYTE rcf(BYTE offset)//此函式因硬體而異 { BYTE b; TRISD=0xff; PORTG=offset; PORTE=0x52; Delay1TCY(); b=PORTD; Delay1TCY(); PORTE=7; return b; } BOOL waitfordata(void) { if (rcf(7)&2) return 0; tmr1=0; do { if ((rcf(7)&0xf8)==0x58) return 1; } while (tmr1<5); return 0; } void getsector(BYTE *p) { WORD i; for (i=0;i<0x200;i ) *p =rcf(0); } void putsector(BYTE *p) { WORD i; for (i=0;i<0x200;i ) wcf(0,*p ); } BOOL WriteSector(DWORD sect) { BYTE *p; p=(BYTE *)§ //wcf(1,0); wcf(2,1); wcf(3,*p ); wcf(4,*p ); wcf(5,*p ); wcf(6,0xe0); wcf(7,0x30); if (waitfordata()) { putsector(sector); return 1; } errcode=WSERR; return 0; } BOOL ReadSector(DWORD sect) { BYTE *p; p=(BYTE *)§ //wcf(1,0); wcf(2,1); wcf(3,*p ); wcf(4,*p ); wcf(5,*p ); wcf(6,0xe0); wcf(7,0x20); if (waitfordata()) { getsector(sector); return 1; } errcode=RSERR; return 0; } </textarea> |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |