32 #include <avr/pgmspace.h>
33 #include <avr/pgmspace.h>
34 #include <avr/sleep.h>
35 #include "dev/watchdog.h"
38 #include <compat/twi.h>
41 #include "enc28j60_avr.h"
43 #include <util/delay_basic.h>
44 #define delay_us(us) (_delay_loop_2(1 + (us * F_CPU) / 4000000UL))
47 enc28j60_arch_spi_init(
void)
49 CS_SPI_DDR |= (1 << SPI_CS);
50 CS_SPI_PORT |= (1 << SPI_CS);
52 SPI_DDR |= (1 << SPI_MOSI) | (1 << SPI_SCK);
53 SPI_DDR &= ~(1 << SPI_MISO);
54 SPI_PORT &= ~(1 << SPI_MOSI);
55 SPI_PORT &= ~(1 << SPI_SCK);
56 SPCR = (1 << SPE) | (1 << MSTR);
60 enc28j60_arch_spi_write(uint8_t data)
63 while(!(SPSR & (1 << SPIF))) ;
67 enc28j60_arch_spi_read(
void)
70 while(!(SPSR & (1 << SPIF))) ;
74 enc28j60_arch_spi_select(
void)
76 CS_SPI_PORT &= ~(1 << SPI_CS);
80 enc28j60_arch_spi_deselect(
void)
82 CS_SPI_PORT |= (1 << SPI_CS);