www.pudn.com > rc500.rar > RDIO.C
/////////////////////////////////////////////////////////////////////////////// // Copyright (c), Philips Semiconductors Gratkorn // // (C)PHILIPS Electronics N.V.2000 // All rights are reserved. Reproduction in whole or in part is // prohibited without the written consent of the copyright owner. // Philips reserves the right to make changes without notice at any time. // Philips makes no warranty, expressed, implied or statutory, including but // not limited to any implied warranty of merchantibility or fitness for any //particular purpose, or that the use will not infringe any third party patent, // copyright or trademark. Philips must not be liable for any loss or damage // arising from its use. /////////////////////////////////////////////////////////////////////////////// #include#include #include /////////////////////////////////////////////////////////////////////////////// // Module Definitions /////////////////////////////////////////////////////////////////////////////// #define GetRegPage(adr) (0x80 | (adr>>3)) unsigned char xdata ini _at_ 0x7f00; // move base address to 0x7f00 unsigned char xdata *GpBase = &ini; // redirect pointer to base address /////////////////////////////////////////////////////////////////////////////// // Open Reader Communication /////////////////////////////////////////////////////////////////////////////// char OpenIO(void) { GpBase = &ini; P2_7 = 0; // Enable the CS for RC500 return 0x00; } /////////////////////////////////////////////////////////////////////////////// // Close Reader Communication /////////////////////////////////////////////////////////////////////////////// void CloseIO(void) { GpBase = 0xff00; P2_7 = 1; // disable the CS for RC500 } /////////////////////////////////////////////////////////////////////////////// // G E N E R I C W R I T E /////////////////////////////////////////////////////////////////////////////// void WriteIO(unsigned char Address, unsigned char value) { WriteRawIO(Address,value); // write value at the specified // address } /////////////////////////////////////////////////////////////////////////////// // G E N E R I C R E A D /////////////////////////////////////////////////////////////////////////////// unsigned char ReadIO(unsigned char Address) { static unsigned char c; c = ReadRawIO(Address); // read value at the specified // address return c; } #ifndef SEC_NO_MICORE /////////////////////////////////////////////////////////////////////////////// // W R I T E S E V E R A L M E M O R Y L O C A T I O N S /////////////////////////////////////////////////////////////////////////////// void WriteIOBlock(unsigned char *Addr_Data, unsigned short len) { static unsigned short cnt; for (cnt = 0; cnt < len; cnt++) { // write value at the specified address WriteRawIO(Addr_Data[cnt*2],Addr_Data[cnt * 2 + 1]); } } /////////////////////////////////////////////////////////////////////////////// // R E A D S E V E R A L M E M O R Y L O C A T I O N S /////////////////////////////////////////////////////////////////////////////// void ReadIOBlock(unsigned char* Addr_Data, unsigned short len) { static unsigned short cnt; for (cnt = 0; cnt < len; cnt) { Addr_Data[cnt*2 + 1] = ReadRawIO(Addr_Data[cnt*2]);// read value at the // specified address } } #endif