www.pudn.com > A24c01.rar > A24c01.c
//============================================================== // // RICOM Co.,Ltd. // (c) Copyright 2001 // // PRODUCT : RICOM Base Application in C // // COMPONENT : MagIc1800 // // FILENAME : menuapp.c // // HISTORY : // // DATE AUTHOR COMMENT // -------- ---------- --------------- // 03/06/20 WangWenJun Program created // //============================================================== #include#include #include #include "pm.h" #include "kbdapi.h" #include "typedef.h" #include "slclock.h" #include "ext.h" #include "var.h" #include "utility.h" #include "se2k.h" #include "24C01.h" /* -- External Routines -- */ char _loadds Reset(void); char _loadds CardInfo(void); char _loadds ReadCard(void); char _loadds WriteCard(void); /* -- External Variables -- */ /* -- Function prototype -- */ /* -- Local Variables -- */ HIERARCHY MsgFuncMenu[] = // 2K version { { 0, "ATMEL24C01¿¨²âÊÔ" , NULL}, // level 0 { 0, "RESET" , Reset}, // level 0 { 0, "CardInfo" , CardInfo}, // level 0 { 0, "READ" , ReadCard}, // level 0 { 0, "WRITE" , WriteCard}, // level 0 { 0, NULL, NULL} // end of the menu }; char _loadds Reset(void) { BYTE bStatus; ClearDisplay(LINEA); if (SC_CardInserted(CUSTOMER_SC_RDR, 0) == FALSE) { ClearDisplay(LINEW); OS_DisplayString(LINE3, 3, 10, "Çë²åÈëIC¿¨"); if (SC_CardInserted(CUSTOMER_SC_RDR, 30*SEC) != TRUE) { OS_DisplayString(LINE3, 0, 12, "µÈ´ý²å¿¨³¬Ê±"); return FALSE; } } if (SC_CardDetect(CUSTOMER_SC_RDR, TRUE) == SC_ERROR) { OS_DisplayString(LINE3, 0, 10, "DETECTʧ°Ü"); return FALSE; } memset(abBuffer, 0xff, sizeof(abBuffer)); if ((bStatus = AT24C01Reset (CUSTOMER_SC_RDR, abBuffer)) == SE2K_OK) { Split(abKbdBuf, abBuffer, 40); OS_DisplayString(LINE2, 0, 16, abKbdBuf); OS_DisplayString(LINE3, 0, 16, &abKbdBuf[16]); OS_DisplayString(LINE4, 0, 16, &abKbdBuf[32]); } else { Bin2Dec(bStatus, abBuffer, 2); OS_DisplayString(LINE2, 0, 6, "ʧ°Ü: "); OS_DisplayString(LINE2, 6, 2, abBuffer); } BeepDelay(0, 0); return OS_OK; } char _loadds CardInfo(void) { AT24C01_STATUS sc24C01; AT24C01_INFO_STRUCT CardInfo; ClearDisplay(LINEA); memset(abBuffer, 0xff, sizeof(abBuffer)); sc24C01 =AT24C01_CardInfo(CUSTOMER_SC_RDR, &CardInfo); if (sc24C01 == AT24C01_OK) { // Split(abKbdBuf, CardInfo.version, 8); OS_DisplayString(LINE2, 0, VERSION_STR_SIZE, CardInfo.version); } else { Bin2Dec(sc24C01, abBuffer, 2); OS_DisplayString(LINE2, 0, 6, "ʧ°Ü: "); OS_DisplayString(LINE2, 6, 2, abBuffer); } BeepDelay(0, 0); return OS_OK; } char _loadds WriteCard(void) { BYTE abWriteBuf[256]; AT24C01_STATUS sc24C01; TSCMDSYNC_24C01 pBuffer; ClearDisplay(LINEA); memset(abWriteBuf, 0, sizeof(abWriteBuf)); memcpy(abWriteBuf,"HELLO",5); pBuffer.wOrder = AT24C01_WRITE; pBuffer.wByteLen = 0x05; pBuffer.wByteAdd = 0x00; pBuffer.pbBuff = abWriteBuf; sc24C01 = AT24C01_Cmd (CUSTOMER_SC_RDR, &pBuffer ); if (sc24C01 == AT24C01_OK) { Bin2Dec(sc24C01, abBuffer, 2); OS_DisplayString(LINE1, 0, 2, abBuffer); OS_DisplayString(LINE2, 0, 8, "WRITE OK"); } else { Bin2Dec(sc24C01, abBuffer, 2); OS_DisplayString(LINE1, 0, 2, abBuffer); OS_DisplayString(LINE2, 0, 10, "WRITE FAIL"); } return OS_OK; } char _loadds ReadCard(void) { BYTE abAtrBuf[256]; AT24C01_STATUS sc24C01; TSCMDSYNC_24C01 pBuffer; ClearDisplay(LINEA); memset(abAtrBuf,0x00,sizeof(abAtrBuf)); pBuffer.wOrder = AT24C01_READ; pBuffer.wByteLen = 0x64; pBuffer.wByteAdd = 0x00; pBuffer.pbBuff = abAtrBuf; sc24C01 = AT24C01_Cmd (CUSTOMER_SC_RDR, &pBuffer ); if (sc24C01 == AT24C01_OK) { Split(abBuffer, abAtrBuf, 8); OS_DisplayString(LINE1-1, 0, 16, abBuffer); Split(abBuffer, &abAtrBuf[8], 8); OS_DisplayString(LINE1, 0, 16, abBuffer); Split(abBuffer, &abAtrBuf[16], 8); OS_DisplayString(LINE2-1, 0, 16, abBuffer); Split(abBuffer, &abAtrBuf[24], 8); OS_DisplayString(LINE2, 0, 16, abBuffer); Split(abBuffer, &abAtrBuf[32], 8); OS_DisplayString(LINE3-1, 0, 16, abBuffer); Split(abBuffer, &abAtrBuf[40], 8); OS_DisplayString(LINE3, 0, 16, abBuffer); Split(abBuffer, &abAtrBuf[48], 8); OS_DisplayString(LINE4-1, 0, 16, abBuffer); Split(abBuffer, &abAtrBuf[56], 8); OS_DisplayString(LINE4, 0, 16, abBuffer); } else { Bin2Dec(sc24C01, abBuffer, 2); OS_DisplayString(LINE1, 0, 2, abBuffer); OS_DisplayString(LINE2, 0, 9, "READ FAIL"); } BeepDelay(0,0); return OS_OK; } void menuApp(void) { ManMenuRun(MsgFuncMenu); }