示例#1
0
uint8_t enc28j60_readOp(uint8_t op, uint8_t address)
{
	csactive();
	SPDR = op | (address & ADDR_MASK);
	waitspi();
	SPDR = 0x00;
	waitspi();
	if (address & 0x80)
	{
		SPDR = 0x00;
		waitspi();
	}
	cspassive();
	return SPDR;
}
示例#2
0
文件: enc28j60.c 项目: schugabe/FWS
void enc28j60WriteBuffer(uint16_t len, uint8_t* data)
{
        CSACTIVE;
        // issue write command
        SPDR = ENC28J60_WRITE_BUF_MEM;
        waitspi();
        while(len)
        {
                len--;
                // write data
                SPDR = *data;
                data++;
                waitspi();
        }
        CSPASSIVE;
}
示例#3
0
void enc28j60_readBuffer(uint16_t len, uint8_t* data)
{
	csactive();
	SPDR = RBM;
	waitspi();
	while (len)
	{
		len--;
		SPDR = 0x00;
		waitspi();
		*data = SPDR;
		data++;
	}
	*data='\0';
	cspassive();
}
示例#4
0
文件: enc28j60.c 项目: schugabe/FWS
void enc28j60ReadBuffer(uint16_t len, uint8_t* data)
{
        CSACTIVE;
        // issue read command
        SPDR = ENC28J60_READ_BUF_MEM;
        waitspi();
        while(len)
        {
                len--;
                // read data
                SPDR = 0x00;
                waitspi();
                *data = SPDR;
                data++;
        }
        *data='\0';
        CSPASSIVE;
}
示例#5
0
/* Write a byte on SPI */
void dotmatrixSPIWrite(uint8_t data) {
	uint8_t dummy = 0;
	/* Wait for empty transmit buffer */
	while ( !( UCSR0A & (1<<UDRE0)) );
	// write data
	dummy = UDR0;
	UDR0 = data;
	waitspi();
}
示例#6
0
文件: enc28j60.c 项目: schugabe/FWS
uint8_t enc28j60ReadOp(uint8_t op, uint8_t address)
{
        CSACTIVE;
        // issue read command
        SPDR = op | (address & ADDR_MASK);
        waitspi();
        // read data
        SPDR = 0x00;
        waitspi();
        // do dummy read if needed (for mac and mii, see datasheet page 29)
        if(address & 0x80)
        {
                SPDR = 0x00;
                waitspi();
        }
        // release CS
        CSPASSIVE;
        return(SPDR);
}