123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- #include "pins_arduino.h"
- #include "SPI.h"
- SPIClass SPI;
- void SPIClass::begin() {
-
- digitalWrite(SS, HIGH);
-
-
-
- pinMode(SS, OUTPUT);
-
-
-
- SPCR |= _BV(MSTR);
- SPCR |= _BV(SPE);
-
-
-
-
-
-
- pinMode(SCK, OUTPUT);
- pinMode(MOSI, OUTPUT);
- }
- void SPIClass::end() {
- SPCR &= ~_BV(SPE);
- }
- void SPIClass::setBitOrder(uint8_t bitOrder)
- {
- if(bitOrder == LSBFIRST) {
- SPCR |= _BV(DORD);
- } else {
- SPCR &= ~(_BV(DORD));
- }
- }
- void SPIClass::setDataMode(uint8_t mode)
- {
- SPCR = (SPCR & ~SPI_MODE_MASK) | mode;
- }
- void SPIClass::setClockDivider(uint8_t rate)
- {
- SPCR = (SPCR & ~SPI_CLOCK_MASK) | (rate & SPI_CLOCK_MASK);
- SPSR = (SPSR & ~SPI_2XCLOCK_MASK) | ((rate >> 2) & SPI_2XCLOCK_MASK);
- }
|