simple typeABZ test with continuous carrier option
Dependencies: SX127x LPS22HB sx12xx_hal
main.cpp
- Committer:
- dudmuck
- Date:
- 2019-02-20
- Revision:
- 1:48040edc5d0f
- Parent:
- 0:77fa30d1c6b5
File content as of revision 1:48040edc5d0f:
#include "radio.h" #include "LPS22HBSensor.h" #ifndef TARGET_DISCO_L072CZ_LRWAN1 #error only_for_L072CZ_discovery #endif #define BW_KHZ 125 #define SPREADING_FACTOR 7 #define CF_HZ 915000000 #define TX_DBM 20 /* DevI2C devI2c(I2C_SDA, I2C_SCL); LPS22HBSensor press_temp(&devI2c); */ AnalogIn pa0(PA_0); DigitalIn test_in_pin(PB_5, PullDown); DigitalOut ext_led(PB_2); #define EXT_LED_ON 0 #define EXT_LED_OFF 1 /**********************************************************************/ volatile bool txDone; void txDoneCB() { txDone = true; } void rxDoneCB(uint8_t size, float rssi, float snr) { } const RadioEvents_t rev = { /* Dio0_top_half */ NULL, /* TxDone_topHalf */ NULL, /* TxDone_botHalf */ txDoneCB, /* TxTimeout */ NULL, /* RxDone */ rxDoneCB, /* RxTimeout */ NULL, /* RxError */ NULL, /* FhssChangeChannel */NULL, /* CadDone */ NULL }; int main() { printf("\r\nreset-tx "); Radio::Init(&rev); Radio::Standby(); Radio::LoRaModemConfig(BW_KHZ, SPREADING_FACTOR, 1); Radio::SetChannel(CF_HZ); Radio::set_tx_dbm(TX_DBM); // preambleLen, fixLen, crcOn, invIQ Radio::LoRaPacketConfig(8, false, true, false); for (;;) { uint16_t samp = pa0.read_u16(); if (test_in_pin) { ext_led = EXT_LED_ON; printf("continuous-tx\r\n"); #ifdef SX127x_H Radio::radio.set_opmode(RF_OPMODE_SLEEP); Radio::fsk.enable(false); Radio::radio.write_u16(REG_FSK_FDEVMSB, 0); Radio::radio.write_u16(REG_FSK_PREAMBLEMSB, 0xffff); Radio::fsk.start_tx(8); #else #error tx_carrier #endif /* SX127x_H*/ } ext_led = EXT_LED_ON; Radio::radio.tx_buf[0] = samp; samp >>= 8; Radio::radio.tx_buf[1] = samp; txDone = false; Radio::Send(2, 0, 0, 0); /* begin transmission */ printf("Sent %04x\r\n", samp); while (!txDone) { Radio::service(); } printf("got-tx-done\r\n"); ext_led = EXT_LED_OFF; wait(1.0); /* throttle sending rate */ } }