1
0
mirror of https://github.com/esp8266/Arduino.git synced 2025-07-20 10:24:18 +03:00

SPISlave.end() added (#4248)

* Change argument to Esp.deepSleep from uint32 to uint64 to match SDK, add deepSleepMax based on the cali_proc function per SDK

* SPISlave.end() added

* Nameoftherose patch for Issue #2435 (#4256)

* WiFiTelnetToSerial Example - Minor Issues #2435

* WiFiTelnetToSerial Example - Minor Issues #2435

Patch to rectify issue #2435

* Check that pins needed by Wire are defined at compile-time (#4261)
This commit is contained in:
Juraj Andrássy
2018-03-18 05:53:54 +01:00
committed by Develo
parent 855b03ce4d
commit 891113678c
4 changed files with 29 additions and 0 deletions

View File

@ -72,6 +72,14 @@ void SPISlaveClass::begin()
hspi_slave_onStatusSent(&_s_status_tx); hspi_slave_onStatusSent(&_s_status_tx);
hspi_slave_begin(4, this); hspi_slave_begin(4, this);
} }
void SPISlaveClass::end()
{
hspi_slave_onData(nullptr);
hspi_slave_onDataSent(nullptr);
hspi_slave_onStatus(nullptr);
hspi_slave_onStatusSent(nullptr);
hspi_slave_end();
}
void SPISlaveClass::setData(uint8_t * data, size_t len) void SPISlaveClass::setData(uint8_t * data, size_t len)
{ {
if(len > 32) { if(len > 32) {

View File

@ -52,6 +52,7 @@ public:
{} {}
~SPISlaveClass() {} ~SPISlaveClass() {}
void begin(); void begin();
void end();
void setData(uint8_t * data, size_t len); void setData(uint8_t * data, size_t len);
void setData(const char * data) void setData(const char * data)
{ {

View File

@ -97,6 +97,23 @@ void hspi_slave_begin(uint8_t status_len, void * arg)
ETS_SPI_INTR_ENABLE(); ETS_SPI_INTR_ENABLE();
} }
void hspi_slave_end()
{
ETS_SPI_INTR_DISABLE();
ETS_SPI_INTR_ATTACH(NULL, NULL);
pinMode(SS, INPUT);
pinMode(SCK, INPUT);
pinMode(MISO, INPUT);
pinMode(MOSI, INPUT);
// defaults
SPI1S = 0;
SPI1U = SPIUSSE | SPIUCOMMAND;
SPI1S1 = 0;
SPI1P = B110;
}
void hspi_slave_setStatus(uint32_t status) void hspi_slave_setStatus(uint32_t status)
{ {
SPI1WS = status; SPI1WS = status;

View File

@ -26,6 +26,9 @@
//Start SPI SLave //Start SPI SLave
void hspi_slave_begin(uint8_t status_len, void * arg); void hspi_slave_begin(uint8_t status_len, void * arg);
//End SPI SLave
void hspi_slave_end();
//set the status register so the master can read it //set the status register so the master can read it
void hspi_slave_setStatus(uint32_t status); void hspi_slave_setStatus(uint32_t status);