1
Diff: radio_sx127x.cpp
- Revision:
- 15:e1c04ec39aa4
- Parent:
- 14:94993ae5b164
- Parent:
- 13:a354f82d12d9
- Child:
- 16:34de2ab7eb32
diff -r 94993ae5b164 -r e1c04ec39aa4 radio_sx127x.cpp --- a/radio_sx127x.cpp Wed Sep 11 13:20:21 2019 -0700 +++ b/radio_sx127x.cpp Wed Sep 11 13:23:37 2019 -0700 @@ -114,14 +114,15 @@ radio.write_reg(REG_FSK_PACKETCONFIG1, fsk.RegPktConfig1.octet); } -void Radio::SetLoRaSymbolTimeout(uint8_t symbs) +void Radio::SetLoRaSymbolTimeout(uint16_t symbs) { if (!radio.RegOpMode.bits.LongRangeMode) lora.enable(); - lora.RegModemConfig2.sx1272bits.SymbTimeoutMsb = 0; + radio.write_reg(REG_LR_SYMBTIMEOUTLSB, symbs & 0xff); + symbs >>= 8; + lora.RegModemConfig2.sx1272bits.SymbTimeoutMsb = symbs; radio.write_reg(REG_LR_MODEMCONFIG2, lora.RegModemConfig2.octet); - radio.write_reg(REG_LR_SYMBTIMEOUTLSB, symbs); } void Radio::LoRaModemConfig(unsigned bwKHz, uint8_t sf, uint8_t coderate) @@ -237,8 +238,10 @@ RadioEvents->DioPin_top_half(); } -void Radio::Init(const RadioEvents_t* e) +void Radio::Init(const RadioEvents_t* e, unsigned spi_hz) { + radio.m_spi.frequency(spi_hz); + while (radio.dio0.read() || radio.dio1.read()) { radio.write_reg(REG_LR_IRQFLAGS, 0xff); // clear stagnant interrupt }