25#ifndef SdSpiBareUnoDriver_h
26#define SdSpiBareUnoDriver_h
32#include "../common/SysCall.h"
33#include <avr/interrupt.h>
34#define nop asm volatile("nop\n\t")
50 return 1 << (pin < 8 ? pin : pin < 14 ? pin - 8 : pin - 14);
54 volatile uint8_t *reg = pin < 8 ? &PIND : pin < 14 ? &PINB : &PINC;
59 volatile uint8_t *port = pin < 8 ? &PORTD : pin < 14 ? &PORTB : &PORTC;
76 volatile uint8_t *reg = pin < 8 ? &DDRD : pin < 14 ? &DDRB : &DDRC;
158 while (!(SPSR & _BV(SPIF)))
168 while (!(SPSR & _BV(SPIF)))
187 void send(
const uint8_t *buf,
size_t count)
197 while (!(SPSR & (1 << SPIF)))
205 while (!(SPSR & (1 << SPIF)))
226 while (!(SPSR & _BV(SPIF)))
uint8_t SdCsPin_t
Definition SdFatConfig.h:139
void unoDigitalWrite(uint8_t pin, uint8_t value)
Definition SdSpiBareUnoDriver.h:57
uint8_t unoDigitalRead(uint8_t pin)
Definition SdSpiBareUnoDriver.h:52
uint8_t unoBit(uint8_t pin)
Definition SdSpiBareUnoDriver.h:48
void unoPinMode(uint8_t pin, uint8_t mode)
Definition SdSpiBareUnoDriver.h:73
SPI card configuration.
Definition SdSpiDriver.h:112
const SdCsPin_t csPin
Definition SdSpiDriver.h:152
Optimized SPI class for access to SD and SDHC flash memory cards.
Definition SdSpiBareUnoDriver.h:102
void send(uint8_t data)
Definition SdSpiBareUnoDriver.h:178
void activate()
Definition SdSpiBareUnoDriver.h:105
void deactivate()
Definition SdSpiBareUnoDriver.h:113
void setSckSpeed(uint32_t maxSck)
Definition SdSpiBareUnoDriver.h:218
static uint8_t transfer(uint8_t data)
Definition SdSpiBareUnoDriver.h:223
void end()
Definition SdSpiBareUnoDriver.h:109
uint8_t receive(uint8_t *buf, size_t count)
Definition SdSpiBareUnoDriver.h:148
void unselect()
Definition SdSpiBareUnoDriver.h:232
SdCsPin_t m_csPin
Definition SdSpiBareUnoDriver.h:238
void select()
Definition SdSpiBareUnoDriver.h:210
uint8_t receive()
Definition SdSpiBareUnoDriver.h:137
void send(const uint8_t *buf, size_t count)
Definition SdSpiBareUnoDriver.h:187
void begin(SdSpiConfig spiConfig)
Definition SdSpiBareUnoDriver.h:120
static bool value
Definition DigitalPin.h:210
static uint8_t mode
Definition DigitalPin.h:186