From c23b9302b0c69e9ce8e63bb07fbb040f83614c4a Mon Sep 17 00:00:00 2001 From: Andrea Guglielmini Date: Mon, 17 Feb 2020 13:15:43 +0100 Subject: [PATCH] [CC1101] Requested changes PR #114 --- src/modules/CC1101/CC1101.cpp | 20 +++++++------------- src/modules/CC1101/CC1101.h | 2 -- 2 files changed, 7 insertions(+), 15 deletions(-) diff --git a/src/modules/CC1101/CC1101.cpp b/src/modules/CC1101/CC1101.cpp index 192708cf..8a04b36b 100644 --- a/src/modules/CC1101/CC1101.cpp +++ b/src/modules/CC1101/CC1101.cpp @@ -236,7 +236,7 @@ int16_t CC1101::startTransmit(uint8_t* data, size_t len, uint8_t addr) { } // fill the FIFO. - uint8_t initialWrite = min(len, (CC1101_FIFO_SIZE - dataSent)); + uint8_t initialWrite = min((uint8_t)len, (uint8_t)(CC1101_FIFO_SIZE - dataSent)); SPIwriteRegisterBurst(CC1101_REG_FIFO, data, initialWrite); dataSent += initialWrite; @@ -244,14 +244,13 @@ int16_t CC1101::startTransmit(uint8_t* data, size_t len, uint8_t addr) { SPIsendCommand(CC1101_CMD_TX); // keep feeding the FIFO until the packet is over. - uint8_t bytesInFIFO; while (dataSent < len) { // get number of bytes in FIFO. - bytesInFIFO = SPIgetRegValue(CC1101_REG_TXBYTES, 6, 0); + uint8_t bytesInFIFO = SPIgetRegValue(CC1101_REG_TXBYTES, 6, 0); // if there's room then put other data. if (bytesInFIFO < CC1101_FIFO_SIZE) { - uint8_t bytesToWrite = min(CC1101_FIFO_SIZE - bytesInFIFO, len - dataSent); + uint8_t bytesToWrite = min((uint8_t)(CC1101_FIFO_SIZE - bytesInFIFO), (uint8_t)(len - dataSent)); SPIwriteRegisterBurst(CC1101_REG_FIFO, &data[dataSent], bytesToWrite); dataSent += bytesToWrite; } else { @@ -271,7 +270,7 @@ int16_t CC1101::startReceive() { SPIsendCommand(CC1101_CMD_FLUSH_RX); // set GDO0 mapping: Asserted when RX FIFO > 4 bytes. - int state = SPIsetRegValue(CC1101_REG_IOCFG0, CC1101_GDOX_RX_FIFO_FULL_OR_PKT_END); + int16_t state = SPIsetRegValue(CC1101_REG_IOCFG0, CC1101_GDOX_RX_FIFO_FULL_OR_PKT_END); state |= SPIsetRegValue(CC1101_REG_FIFOTHR, CC1101_FIFO_THR_TX_61_RX_4, 3, 0); RADIOLIB_ASSERT(state); @@ -296,14 +295,14 @@ int16_t CC1101::readData(uint8_t* data, size_t len) { uint8_t bytesInFIFO = SPIgetRegValue(CC1101_REG_RXBYTES, 6, 0); uint16_t readBytes = 0; - unsigned long lastPop = millis(); + uint32_t lastPop = millis(); // keep reading from FIFO until we get all the packet. while (readBytes < length) { if (bytesInFIFO == 0) { if (millis() - lastPop > 5) { // readData was required to read a packet longer than the one received. - RADIOLIB_DEBUG_PRINT(F("No data for more than 5mS. Stop here.")); + RADIOLIB_DEBUG_PRINTLN(F("No data for more than 5mS. Stop here.")); break; } else { delay(1); @@ -313,7 +312,7 @@ int16_t CC1101::readData(uint8_t* data, size_t len) { } // read the minimum between "remaining length" and bytesInFifo - uint8_t bytesToRead = min(length - readBytes, bytesInFIFO); + uint8_t bytesToRead = min((uint8_t)(length - readBytes), bytesInFIFO); SPIreadRegisterBurst(CC1101_REG_FIFO, bytesToRead, &(data[readBytes])); readBytes += bytesToRead; lastPop = millis(); @@ -912,8 +911,3 @@ void CC1101::SPIsendCommand(uint8_t cmd) { SPI.endTransaction(); Module::digitalWrite(_mod->getCs(), HIGH); } - -uint8_t CC1101::min(uint8_t a, uint8_t b) { - if (a < b) return a; - return b; -} \ No newline at end of file diff --git a/src/modules/CC1101/CC1101.h b/src/modules/CC1101/CC1101.h index ecc1b4ef..714b2da4 100644 --- a/src/modules/CC1101/CC1101.h +++ b/src/modules/CC1101/CC1101.h @@ -885,8 +885,6 @@ class CC1101: public PhysicalLayer { uint8_t _syncWordLength; int8_t _power; - uint8_t min(uint8_t a, uint8_t b); - int16_t config(); int16_t directMode(); void getExpMant(float target, uint16_t mantOffset, uint8_t divExp, uint8_t expMax, uint8_t& exp, uint8_t& mant);