sx1261/2 driver
Dependents: alarm_slave iq_sx126x sx126x_simple_TX_shield_2020a sx126x_simple_RX_shield_2020a ... more
Driver for SX1261 or SX1262
Diff: sx126x.cpp
- Revision:
- 4:b941bceb401d
- Parent:
- 3:f6f2f8adcd22
- Child:
- 5:8b75387af4e0
--- a/sx126x.cpp Tue Jul 03 15:38:55 2018 -0700 +++ b/sx126x.cpp Thu Jul 05 13:38:27 2018 -0700 @@ -61,7 +61,6 @@ printf("\r\n"); } -extern RawSerial pc; void SX126x::service() { IrqFlags_t irqFlags, clearIrqFlags; @@ -81,6 +80,8 @@ txDone.call(); clearIrqFlags.bits.TxDone = 1; chipMode = CHIPMODE_NONE; + if (chipModeChange) + chipModeChange.call(); } if (irqFlags.bits.RxDone) { if (rxDone) { @@ -104,6 +105,8 @@ timeout(chipMode == CHIPMODE_TX); } chipMode = CHIPMODE_NONE; + if (chipModeChange) + chipModeChange.call(); clearIrqFlags.bits.Timeout = 1; } @@ -185,6 +188,8 @@ xfer(OPCODE_SET_TX, 3, 0, buf); chipMode = CHIPMODE_TX; + if (chipModeChange) + chipModeChange.call(); } void SX126x::start_rx(unsigned timeout) @@ -197,6 +202,8 @@ xfer(OPCODE_SET_RX, 3, 0, buf); chipMode = CHIPMODE_RX; + if (chipModeChange) + chipModeChange.call(); } uint8_t SX126x::setMHz(float MHz) @@ -315,6 +322,17 @@ xfer(OPCODE_SET_STANDBY, 1, 0, &octet); chipMode = CHIPMODE_NONE; + if (chipModeChange) + chipModeChange.call(); +} + +void SX126x::setFS() +{ + xfer(OPCODE_SET_FS, 0, 0, NULL); + + chipMode = CHIPMODE_NONE; + if (chipModeChange) + chipModeChange.call(); } void SX126x::setSleep(bool warmStart, bool rtcWakeup) @@ -327,6 +345,8 @@ xfer(OPCODE_SET_SLEEP, 1, 0, &sc.octet); chipMode = CHIPMODE_NONE; + if (chipModeChange) + chipModeChange.call(); } void SX126x::hw_reset(PinName pin)