Initial Commit

Dependencies:   SX127x sx12xx_hal

Committer:
LoRaToolbox
Date:
Sat Dec 15 18:10:28 2018 +0000
Revision:
0:f843ca4a8e98
Child:
1:8cd5f8492271
Initial Commit

Who changed what in which revision?

UserRevisionLine numberNew contents of line
LoRaToolbox 0:f843ca4a8e98 1 #include "radio.h"
LoRaToolbox 0:f843ca4a8e98 2
LoRaToolbox 0:f843ca4a8e98 3 #if defined(SX127x_H)
LoRaToolbox 0:f843ca4a8e98 4 #define BW_KHZ 500
LoRaToolbox 0:f843ca4a8e98 5 #define SPREADING_FACTOR 10
LoRaToolbox 0:f843ca4a8e98 6 #define CF_HZ 913000000
LoRaToolbox 0:f843ca4a8e98 7 #elif defined(SX126x_H)
LoRaToolbox 0:f843ca4a8e98 8 #define BW_KHZ 500
LoRaToolbox 0:f843ca4a8e98 9 #define SPREADING_FACTOR 10
LoRaToolbox 0:f843ca4a8e98 10 #define CF_HZ 913000000
LoRaToolbox 0:f843ca4a8e98 11 #elif defined(SX128x_H)
LoRaToolbox 0:f843ca4a8e98 12 #define BW_KHZ 200
LoRaToolbox 0:f843ca4a8e98 13 #define SPREADING_FACTOR 7
LoRaToolbox 0:f843ca4a8e98 14 #define CF_HZ 2487000000
LoRaToolbox 0:f843ca4a8e98 15 #endif
LoRaToolbox 0:f843ca4a8e98 16
LoRaToolbox 0:f843ca4a8e98 17 DigitalOut myled(LED1);
LoRaToolbox 0:f843ca4a8e98 18
LoRaToolbox 0:f843ca4a8e98 19 /**********************************************************************/
LoRaToolbox 0:f843ca4a8e98 20
LoRaToolbox 0:f843ca4a8e98 21 void txDoneCB()
LoRaToolbox 0:f843ca4a8e98 22 {
LoRaToolbox 0:f843ca4a8e98 23 }
LoRaToolbox 0:f843ca4a8e98 24
LoRaToolbox 0:f843ca4a8e98 25 void rxDoneCB(uint8_t size, float rssi, float snr)
LoRaToolbox 0:f843ca4a8e98 26 {
LoRaToolbox 0:f843ca4a8e98 27 unsigned i;
LoRaToolbox 0:f843ca4a8e98 28 printf("%.1fdBm snr:%.1fdB\t", rssi, snr);
LoRaToolbox 0:f843ca4a8e98 29
LoRaToolbox 0:f843ca4a8e98 30 myled.write(!myled.read()); // toggle LED
LoRaToolbox 0:f843ca4a8e98 31
LoRaToolbox 0:f843ca4a8e98 32 for (i = 0; i < size; i++) {
LoRaToolbox 0:f843ca4a8e98 33 printf("%02d ", Radio::radio.rx_buf[i]); // Changed to "%02d \n"
LoRaToolbox 0:f843ca4a8e98 34 }
LoRaToolbox 0:f843ca4a8e98 35 printf("\r\n\n");
LoRaToolbox 0:f843ca4a8e98 36 }
LoRaToolbox 0:f843ca4a8e98 37
LoRaToolbox 0:f843ca4a8e98 38 const RadioEvents_t rev = {
LoRaToolbox 0:f843ca4a8e98 39 /* Dio0_top_half */ NULL,
LoRaToolbox 0:f843ca4a8e98 40 /* TxDone_topHalf */ NULL,
LoRaToolbox 0:f843ca4a8e98 41 /* TxDone_botHalf */ txDoneCB,
LoRaToolbox 0:f843ca4a8e98 42 /* TxTimeout */ NULL,
LoRaToolbox 0:f843ca4a8e98 43 /* RxDone */ rxDoneCB,
LoRaToolbox 0:f843ca4a8e98 44 /* RxTimeout */ NULL,
LoRaToolbox 0:f843ca4a8e98 45 /* RxError */ NULL,
LoRaToolbox 0:f843ca4a8e98 46 /* FhssChangeChannel */NULL,
LoRaToolbox 0:f843ca4a8e98 47 /* CadDone */ NULL
LoRaToolbox 0:f843ca4a8e98 48 };
LoRaToolbox 0:f843ca4a8e98 49
LoRaToolbox 0:f843ca4a8e98 50 int main()
LoRaToolbox 0:f843ca4a8e98 51 {
LoRaToolbox 0:f843ca4a8e98 52 printf("\r\nreset-rx\r\n");
LoRaToolbox 0:f843ca4a8e98 53
LoRaToolbox 0:f843ca4a8e98 54 Radio::Init(&rev);
LoRaToolbox 0:f843ca4a8e98 55
LoRaToolbox 0:f843ca4a8e98 56 //Radio::radio.hw_reset(); Comment out to make it work!!!!
LoRaToolbox 0:f843ca4a8e98 57 Radio::Standby();
LoRaToolbox 0:f843ca4a8e98 58 Radio::LoRaModemConfig(BW_KHZ, SPREADING_FACTOR, 1);
LoRaToolbox 0:f843ca4a8e98 59 Radio::SetChannel(CF_HZ);
LoRaToolbox 0:f843ca4a8e98 60
LoRaToolbox 0:f843ca4a8e98 61 // preambleLen, fixLen, crcOn, invIQ
LoRaToolbox 0:f843ca4a8e98 62 Radio::LoRaPacketConfig(8, false, true, false);
LoRaToolbox 0:f843ca4a8e98 63
LoRaToolbox 0:f843ca4a8e98 64 Radio::Rx(0);
LoRaToolbox 0:f843ca4a8e98 65
LoRaToolbox 0:f843ca4a8e98 66 for (;;) {
LoRaToolbox 0:f843ca4a8e98 67 Radio::service();
LoRaToolbox 0:f843ca4a8e98 68 }
LoRaToolbox 0:f843ca4a8e98 69 }