12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
-
-
- #include "pins_arduino.h"
- #include "SPI.h"
-
- SPIClass SPI;
-
- void SPIClass::begin() {
-
-
-
-
-
-
- pinMode(SCK, OUTPUT);
- pinMode(MOSI, OUTPUT);
- pinMode(SS, OUTPUT);
-
- digitalWrite(SCK, LOW);
- digitalWrite(MOSI, LOW);
- digitalWrite(SS, HIGH);
-
-
-
-
- SPCR |= _BV(MSTR);
- SPCR |= _BV(SPE);
- }
-
- 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);
- }
|