#include "ao.h"
uint8_t
-ao_spi_read(uint8_t *buf, uint8_t len)
+ao_spi_slave_recv(uint8_t *buf, uint8_t len)
{
while (len--) {
while (!(SPSR & (1 << SPIF)))
}
void
-ao_spi_write(uint8_t *buf, uint8_t len)
+ao_spi_slave_send(uint8_t *buf, uint8_t len)
{
while (len--) {
SPDR = *buf++;
static uint8_t ao_spi_slave_running;
-ISR(PCINT0_vect)
+ISR(PCINT0_vect, ISR_BLOCK)
{
- cli();
#if SPI_SLAVE_PIN_0_3
if ((PINB & (1 << PORTB0)) == 0)
#endif
} else {
ao_spi_slave_running = 0;
}
- sei();
}
void
(1 << 3) | /* MISO, output */
(0 << 2) | /* MOSI, no pull-up */
(0 << 1) | /* SCK, no pull-up */
- (0 << 0)); /* SS, no pull-up */
+ (1 << 0)); /* SS, pull-up */
#endif
#if SPI_SLAVE_PIN_2_5
PCMSK0 |= (1 << PCINT2); /* Enable PCINT2 pin change */
(0 << 5) | /* SCK, no pull-up */
(1 << 4) | /* MISO, output */
(0 << 3) | /* MOSI, no pull-up */
- (0 << 2)); /* SS, no pull-up */
+ (1 << 2)); /* SS, pull-up */
#endif
SPCR = (0 << SPIE) | /* Disable SPI interrupts */