/* 1. Compiler: TC 2.0 2. Mode: Large 3. Project: Eeprom.prj Eeprom.c ..\lib\8000l.lib ..\lib\tcpipl.lib 4. Explain: To write a value to EEPROM and show it. 5. Hordware: 8831 It's compiled by Tony ----------------------------------------------------- */ #include #include #include #include #include #include"..\lib\8000.h" #include"..\lib\vxcomm.h" /*-----------------------------------------------------*/ unsigned long far *TimeTick=(unsigned long far *)0x0040006CL; unsigned char buf[2048]; main() { int i,j,addr,block; unsigned long st,et; int type; int ver; type=Is8000(); /*detect the current operation system*/ if(type) { ver=GetLibVersion(); Print("Hello 8831! (Flash memory is %d K)\n\r",type); Print("Library version is %d.%02d",ver>>8,ver&0xff); } else { Print("Hello PC!, this program is not run under I-8831."); return; } /* st=*TimeTick; EnableEEP(); for(block=0;block<8;block++){ for(addr=0;addr<256;addr++){ WriteEEP(block,addr,addr+block); } } ProtectEEP(); et=*TimeTick; Print("Start=%lu, End=%lu -->Time=%lu(ms)",st,et,et-st); Print("\n\rPress any key to continue..."); Getch(); for(block=0;block<8;block++){ for(addr=0;addr<256;){ Print("\n\rblock %d [%03d] ",block,addr); for(i=0;i<16;i++){ Print("%02X ",ReadEEP(block,addr++)); } } Print("\n\rPress any key to continue..."); Getch(); } */ /* Use New Functions */ /* void EE_WriteEnable(void); void EE_WriteProtect(void); unsigned char EE_RandomRead(int Block,int Addr); unsigned char EE_ReadNext(int Block); void EE_MultiRead(int StartBlock,int StartAddr,int no,char *databuf); void EE_RandomWrite(int Block,int Addr,int Data); void EE_MultiWrite(int Block,int Addr,int no,char *Data); */ st=*TimeTick; EE_WriteEnable(); for(block=0;block<8;block++){ for(addr=0;addr<256;addr++) buf[addr]=addr+block; for(addr=0;addr<256;addr+=16){ EE_MultiWrite(block,addr,16,buf+addr); } } EE_WriteProtect(); et=*TimeTick; Print("\n\rUse new function: Start=%lu, End=%lu -->Time=%lu(ms)",st,et,et-st); Print("\n\rPress any key to continue..."); Getch(); EE_MultiRead(0,0,2048,buf); j=0; for(block=0;block<8;block++){ for(addr=0;addr<256;addr+=16){ Print("\n\rBlock %d [%03d] ",block,addr); for(i=0;i<16;i++){ Print("%02X ",buf[j++]); } } Print("\n\rPress any key to continue..."); Getch(); } }