void enc28j60WriteOp(unsigned char op, unsigned char address, unsigned char data) { unsigned char dat = 0; ENC28J60_CSL(); // issue write command dat = op | (address & ADDR_MASK); SPI1_ReadWrite(dat); // write data dat = data; SPI1_ReadWrite(dat); ENC28J60_CSH(); }
void enc28j60WriteOp(uint8_t op, uint8_t address, uint8_t data) { uint8_t dat = 0; ENC28J60_CSL(); // issue write command dat = op | (address & ADDR_MASK); SPI1_ReadWrite(dat); // write data dat = data; SPI1_ReadWrite(dat); ENC28J60_CSH(); }
void enc28j60WriteBuffer(unsigned int len, unsigned char* data) { ENC28J60_CSL(); // issue write command SPI1_ReadWrite(ENC28J60_WRITE_BUF_MEM); while(len) { len--; SPI1_ReadWrite(*data); data++; } ENC28J60_CSH(); }
void enc28j60ReadBuffer(unsigned int len, unsigned char* data) { ENC28J60_CSL(); // issue read command SPI1_ReadWrite(ENC28J60_READ_BUF_MEM); while(len) { len--; // read data *data = (unsigned char)SPI1_ReadWrite(0); data++; } *data='\0'; ENC28J60_CSH(); }
unsigned char enc28j60ReadOp(unsigned char op, unsigned char address) { unsigned char dat = 0; ENC28J60_CSL(); dat = op | (address & ADDR_MASK); SPI1_ReadWrite(dat); dat = SPI1_ReadWrite(0xFF); // do dummy read if needed (for mac and mii, see datasheet page 29) if(address & 0x80) { dat = SPI1_ReadWrite(0xFF); } // release CS ENC28J60_CSH(); return dat; }