simple typeABZ test with continuous carrier option
Dependencies: SX127x LPS22HB sx12xx_hal
main.cpp@0:77fa30d1c6b5, 2019-02-20 (annotated)
- Committer:
- Wayne Roberts
- Date:
- Wed Feb 20 13:04:57 2019 -0800
- Revision:
- 0:77fa30d1c6b5
- Child:
- 1:48040edc5d0f
initial commit
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Wayne Roberts |
0:77fa30d1c6b5 | 1 | #include "radio.h" |
Wayne Roberts |
0:77fa30d1c6b5 | 2 | #include "LPS22HBSensor.h" |
Wayne Roberts |
0:77fa30d1c6b5 | 3 | |
Wayne Roberts |
0:77fa30d1c6b5 | 4 | #define BW_KHZ 125 |
Wayne Roberts |
0:77fa30d1c6b5 | 5 | #define SPREADING_FACTOR 7 |
Wayne Roberts |
0:77fa30d1c6b5 | 6 | #define CF_HZ 915000000 |
Wayne Roberts |
0:77fa30d1c6b5 | 7 | #define TX_DBM 20 |
Wayne Roberts |
0:77fa30d1c6b5 | 8 | |
Wayne Roberts |
0:77fa30d1c6b5 | 9 | /* |
Wayne Roberts |
0:77fa30d1c6b5 | 10 | DevI2C devI2c(I2C_SDA, I2C_SCL); |
Wayne Roberts |
0:77fa30d1c6b5 | 11 | LPS22HBSensor press_temp(&devI2c); |
Wayne Roberts |
0:77fa30d1c6b5 | 12 | */ |
Wayne Roberts |
0:77fa30d1c6b5 | 13 | AnalogIn pa0(PA_0); |
Wayne Roberts |
0:77fa30d1c6b5 | 14 | DigitalIn test_in_pin(PB_5, PullDown); |
Wayne Roberts |
0:77fa30d1c6b5 | 15 | DigitalOut ext_led(PB_2); |
Wayne Roberts |
0:77fa30d1c6b5 | 16 | #define EXT_LED_ON 0 |
Wayne Roberts |
0:77fa30d1c6b5 | 17 | #define EXT_LED_OFF 1 |
Wayne Roberts |
0:77fa30d1c6b5 | 18 | |
Wayne Roberts |
0:77fa30d1c6b5 | 19 | |
Wayne Roberts |
0:77fa30d1c6b5 | 20 | /**********************************************************************/ |
Wayne Roberts |
0:77fa30d1c6b5 | 21 | volatile bool txDone; |
Wayne Roberts |
0:77fa30d1c6b5 | 22 | |
Wayne Roberts |
0:77fa30d1c6b5 | 23 | void txDoneCB() |
Wayne Roberts |
0:77fa30d1c6b5 | 24 | { |
Wayne Roberts |
0:77fa30d1c6b5 | 25 | txDone = true; |
Wayne Roberts |
0:77fa30d1c6b5 | 26 | } |
Wayne Roberts |
0:77fa30d1c6b5 | 27 | |
Wayne Roberts |
0:77fa30d1c6b5 | 28 | void rxDoneCB(uint8_t size, float rssi, float snr) |
Wayne Roberts |
0:77fa30d1c6b5 | 29 | { |
Wayne Roberts |
0:77fa30d1c6b5 | 30 | } |
Wayne Roberts |
0:77fa30d1c6b5 | 31 | |
Wayne Roberts |
0:77fa30d1c6b5 | 32 | const RadioEvents_t rev = { |
Wayne Roberts |
0:77fa30d1c6b5 | 33 | /* Dio0_top_half */ NULL, |
Wayne Roberts |
0:77fa30d1c6b5 | 34 | /* TxDone_topHalf */ NULL, |
Wayne Roberts |
0:77fa30d1c6b5 | 35 | /* TxDone_botHalf */ txDoneCB, |
Wayne Roberts |
0:77fa30d1c6b5 | 36 | /* TxTimeout */ NULL, |
Wayne Roberts |
0:77fa30d1c6b5 | 37 | /* RxDone */ rxDoneCB, |
Wayne Roberts |
0:77fa30d1c6b5 | 38 | /* RxTimeout */ NULL, |
Wayne Roberts |
0:77fa30d1c6b5 | 39 | /* RxError */ NULL, |
Wayne Roberts |
0:77fa30d1c6b5 | 40 | /* FhssChangeChannel */NULL, |
Wayne Roberts |
0:77fa30d1c6b5 | 41 | /* CadDone */ NULL |
Wayne Roberts |
0:77fa30d1c6b5 | 42 | }; |
Wayne Roberts |
0:77fa30d1c6b5 | 43 | |
Wayne Roberts |
0:77fa30d1c6b5 | 44 | int main() |
Wayne Roberts |
0:77fa30d1c6b5 | 45 | { |
Wayne Roberts |
0:77fa30d1c6b5 | 46 | printf("\r\nreset-tx "); |
Wayne Roberts |
0:77fa30d1c6b5 | 47 | |
Wayne Roberts |
0:77fa30d1c6b5 | 48 | Radio::Init(&rev); |
Wayne Roberts |
0:77fa30d1c6b5 | 49 | |
Wayne Roberts |
0:77fa30d1c6b5 | 50 | Radio::Standby(); |
Wayne Roberts |
0:77fa30d1c6b5 | 51 | Radio::LoRaModemConfig(BW_KHZ, SPREADING_FACTOR, 1); |
Wayne Roberts |
0:77fa30d1c6b5 | 52 | Radio::SetChannel(CF_HZ); |
Wayne Roberts |
0:77fa30d1c6b5 | 53 | |
Wayne Roberts |
0:77fa30d1c6b5 | 54 | Radio::set_tx_dbm(TX_DBM); |
Wayne Roberts |
0:77fa30d1c6b5 | 55 | |
Wayne Roberts |
0:77fa30d1c6b5 | 56 | // preambleLen, fixLen, crcOn, invIQ |
Wayne Roberts |
0:77fa30d1c6b5 | 57 | Radio::LoRaPacketConfig(8, false, true, false); |
Wayne Roberts |
0:77fa30d1c6b5 | 58 | |
Wayne Roberts |
0:77fa30d1c6b5 | 59 | for (;;) { |
Wayne Roberts |
0:77fa30d1c6b5 | 60 | |
Wayne Roberts |
0:77fa30d1c6b5 | 61 | uint16_t samp = pa0.read_u16(); |
Wayne Roberts |
0:77fa30d1c6b5 | 62 | if (test_in_pin) { |
Wayne Roberts |
0:77fa30d1c6b5 | 63 | ext_led = EXT_LED_ON; |
Wayne Roberts |
0:77fa30d1c6b5 | 64 | printf("continuous-tx\r\n"); |
Wayne Roberts |
0:77fa30d1c6b5 | 65 | #ifdef SX127x_H |
Wayne Roberts |
0:77fa30d1c6b5 | 66 | Radio::radio.set_opmode(RF_OPMODE_SLEEP); |
Wayne Roberts |
0:77fa30d1c6b5 | 67 | Radio::fsk.enable(false); |
Wayne Roberts |
0:77fa30d1c6b5 | 68 | Radio::radio.write_u16(REG_FSK_FDEVMSB, 0); |
Wayne Roberts |
0:77fa30d1c6b5 | 69 | Radio::radio.write_u16(REG_FSK_PREAMBLEMSB, 0xffff); |
Wayne Roberts |
0:77fa30d1c6b5 | 70 | Radio::fsk.start_tx(8); |
Wayne Roberts |
0:77fa30d1c6b5 | 71 | #else |
Wayne Roberts |
0:77fa30d1c6b5 | 72 | #error tx_carrier |
Wayne Roberts |
0:77fa30d1c6b5 | 73 | #endif /* SX127x_H*/ |
Wayne Roberts |
0:77fa30d1c6b5 | 74 | } |
Wayne Roberts |
0:77fa30d1c6b5 | 75 | |
Wayne Roberts |
0:77fa30d1c6b5 | 76 | ext_led = EXT_LED_ON; |
Wayne Roberts |
0:77fa30d1c6b5 | 77 | Radio::radio.tx_buf[0] = samp; |
Wayne Roberts |
0:77fa30d1c6b5 | 78 | samp >>= 8; |
Wayne Roberts |
0:77fa30d1c6b5 | 79 | Radio::radio.tx_buf[1] = samp; |
Wayne Roberts |
0:77fa30d1c6b5 | 80 | txDone = false; |
Wayne Roberts |
0:77fa30d1c6b5 | 81 | Radio::Send(2, 0, 0, 0); /* begin transmission */ |
Wayne Roberts |
0:77fa30d1c6b5 | 82 | |
Wayne Roberts |
0:77fa30d1c6b5 | 83 | printf("Sent %04x\r\n", samp); |
Wayne Roberts |
0:77fa30d1c6b5 | 84 | while (!txDone) { |
Wayne Roberts |
0:77fa30d1c6b5 | 85 | Radio::service(); |
Wayne Roberts |
0:77fa30d1c6b5 | 86 | } |
Wayne Roberts |
0:77fa30d1c6b5 | 87 | printf("got-tx-done\r\n"); |
Wayne Roberts |
0:77fa30d1c6b5 | 88 | ext_led = EXT_LED_OFF; |
Wayne Roberts |
0:77fa30d1c6b5 | 89 | |
Wayne Roberts |
0:77fa30d1c6b5 | 90 | wait(1.0); /* throttle sending rate */ |
Wayne Roberts |
0:77fa30d1c6b5 | 91 | } |
Wayne Roberts |
0:77fa30d1c6b5 | 92 | } |
Wayne Roberts |
0:77fa30d1c6b5 | 93 |