Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[SPI] Minor update to SPI API #117

Merged
merged 6 commits into from
Sep 2, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 12 additions & 19 deletions Arduino_package/hardware/libraries/SPI/src/SPI.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,8 @@ SPIClass::SPIClass(void *pSpiObj, int mosi, int miso, int clk, int ss)

pinUserSS = -1;
initStatus = false;
dataBits = 8; // default databits is 8 bits
dataMode = SPI_MODE0; // default datamode is mode 0

#if defined(BOARD_RTL8721DM)
defaultFrequency = 2000000;
Expand All @@ -55,7 +57,7 @@ SPIClass::SPIClass(void *pSpiObj, int mosi, int miso, int clk, int ss)
void SPIClass::beginTransaction(uint8_t pin, SPISettings settings)
{
bitOrder = settings._bitOrder;
spi_format((spi_t *)pSpiMaster, 8, settings._dataMode, 0);
spi_format((spi_t *)pSpiMaster, dataBits, dataMode, 0);
spi_frequency((spi_t *)pSpiMaster, settings._clock);

//log_uart_disable_printf();
Expand Down Expand Up @@ -98,7 +100,7 @@ void SPIClass::begin(void)
(PinName)pinCLK,
(PinName)pinSS
);
spi_format((spi_t *)pSpiMaster, 8, 0, 0);
spi_format((spi_t *)pSpiMaster, dataBits, dataMode, 0);
spi_frequency((spi_t *)pSpiMaster, defaultFrequency);

// Mark SPI init status
Expand All @@ -125,7 +127,7 @@ void SPIClass::begin(int ss)
(PinName)pinCLK,
(PinName)pinSS
);
spi_format((spi_t *)pSpiMaster, 8, 0, 0);
spi_format((spi_t *)pSpiMaster, dataBits, dataMode, 0);
spi_frequency((spi_t *)pSpiMaster, defaultFrequency);

// Mark SPI init status
Expand Down Expand Up @@ -254,27 +256,21 @@ void SPIClass::setBitOrder(BitOrder _order)
}

// bits: data frame size, 4-16 supported.
void SPIClass::setDataMode(uint8_t _pin, uint8_t _bits, uint8_t _mode)
void SPIClass::setDataMode(uint8_t _bits, uint8_t _mode)
{
dataBits = _bits;
dataMode = _mode;
if(initStatus) {
(void)_pin;
spi_format((spi_t *)pSpiMaster, _bits, _mode, 0);
} else {
printf("Error: SPI is not initialized yet, please initialize SPI before using this API\r\n");
while(1);
spi_format((spi_t *)pSpiMaster, dataBits, dataMode, 0);
}
}

void SPIClass::setDataMode(uint8_t _pin, uint8_t _mode)
{
setDataMode(_pin, 8, _mode);
}

void SPIClass::setDataMode(uint8_t _mode)
{
setDataMode(pinSS, _mode);
setDataMode(dataBits, _mode);
}


void SPIClass::setClockDivider(uint8_t _pin, uint8_t _divider)
{
(void)_pin;
Expand All @@ -293,12 +289,9 @@ void SPIClass::setClockDivider(uint8_t _div)

void SPIClass::setDefaultFrequency(int _frequency)
{
defaultFrequency = _frequency;
if(initStatus) {
defaultFrequency = _frequency;
spi_frequency((spi_t *)pSpiMaster, defaultFrequency);
} else {
printf("Error: SPI is not initialized yet, please initialize SPI before using this API\r\n");
while(1);
}
}

Expand Down
6 changes: 3 additions & 3 deletions Arduino_package/hardware/libraries/SPI/src/SPI.h
Original file line number Diff line number Diff line change
Expand Up @@ -87,8 +87,7 @@ class SPIClass {
void setBitOrder(uint8_t _pin, BitOrder _bitOrder);
void setBitOrder(BitOrder _order);

void setDataMode(uint8_t _pin, uint8_t _bits, uint8_t _mode);
void setDataMode(uint8_t _pin, uint8_t _mode);
void setDataMode(uint8_t _bits, uint8_t _mode);
void setDataMode(uint8_t _mode);

void setClockDivider(uint8_t _pin, uint8_t _divider);
Expand All @@ -107,7 +106,8 @@ class SPIClass {
int pinUserSS;
BitOrder bitOrder;
bool initStatus; // flag to mark SPI init status

u8 dataBits;
u8 dataMode;
int defaultFrequency;
};

Expand Down
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -53,4 +53,5 @@ For all `release` information, please visit this [link](https://github.com/ambio
</br>

## 3. Contributing to Ameba

Please spend 5 mins to read the **Coding Style** and **Contribution Guideline** at [here](https://github.com/ambiot/ambd_arduino/wiki/Contributing-to-Ameba) before you contribute.