1
0
mirror of https://github.com/esp8266/Arduino.git synced 2025-07-30 16:24:09 +03:00

Renaming SPI constants to better match general style. Renaming setDataOrder() to setBitOrder(), and using existing LSBFIRST and MSBFIRST constants for it.

This commit is contained in:
David A. Mellis
2010-08-07 20:33:18 +00:00
parent 3899ffc75d
commit 08feacbb40
3 changed files with 49 additions and 105 deletions

View File

@ -37,51 +37,23 @@ SPIClass::SPIClass()
SPCR = _BV(SPE) | _BV(MSTR);
}
void SPIClass::setDataOrder(SPIDataOrder _d)
void SPIClass::setBitOrder(uint8_t bitOrder)
{
if (_d == SPI_DataOrder_LSB)
SPCR |= _BV(DORD); // LSB
else
SPCR &= ~_BV(DORD); // MSB
}
void SPIClass::setSPIMode(SPIMode _d)
{
switch (_d) {
case SPI_Mode_SampleRising:
SPCR &= ~(_BV(CPOL) | _BV(CPHA));
break;
case SPI_Mode_SetupRising:
SPCR &= ~_BV(CPOL);
SPCR |= _BV(CPHA);
break;
case SPI_Mode_SampleFalling:
SPCR &= ~_BV(CPHA);
SPCR |= _BV(CPOL);
break;
case SPI_Mode_SetupFalling:
SPCR |= _BV(CPOL) | _BV(CPHA);
break;
if(bitOrder == LSBFIRST) {
SPCR |= _BV(DORD);
} else {
SPCR &= ~(_BV(DORD));
}
}
void SPIClass::setClockDivider(SPIClockDivider _d)
void SPIClass::setDataMode(uint8_t mode)
{
switch (_d) {
case SPI_ClkDiv_4:
SPCR &= ~(_BV(SPR1) | _BV(SPR0));
break;
case SPI_ClkDiv_16:
SPCR &= ~_BV(SPR1);
SPCR |= _BV(SPR0);
break;
case SPI_ClkDiv_64:
SPCR |= _BV(SPR1);
SPCR &= ~_BV(SPR0);
break;
case SPI_ClkDiv_128:
SPCR |= _BV(SPR1) | _BV(SPR0);
break;
}
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 & SPI_2XCLOCK_MASK);
}