1SJ Test_Example Tx

Dependencies:   sx126x sx12xx_hal

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 #include "radio.h"
00002 
00003 #if defined(SX127x_H)
00004     #define BW_KHZ              125
00005     #define SPREADING_FACTOR    7
00006     #define CF_HZ               915000000
00007     #define TX_DBM              20
00008 #elif defined(SX126x_H)
00009     #define BW_KHZ              500
00010     #define SPREADING_FACTOR    8
00011     #define CF_HZ               915000000
00012     //#define TX_DBM              (Radio::chipType == CHIP_TYPE_SX1262 ? 20 : 14) 
00013 #elif defined(SX128x_H)
00014     #define BW_KHZ              200
00015     #define SPREADING_FACTOR    7
00016     #define CF_HZ               2487000000
00017     #define TX_DBM              6
00018 #endif
00019 
00020 /**********************************************************************/
00021 EventQueue queue(4 * EVENTS_EVENT_SIZE);
00022 
00023 void tx_test()
00024 {
00025     uint8_t seq = 0;
00026 
00027     Radio::radio.tx_buf[0] = seq++;  /* set payload */
00028     Radio::Send(1, 0, 0, 0);   /* begin transmission */
00029     printf("sent\r\n");
00030 
00031 /*    {
00032         mbed_stats_cpu_t stats;
00033         mbed_stats_cpu_get(&stats);
00034         printf("canDeep:%u ", sleep_manager_can_deep_sleep());
00035         printf("Uptime: %llu ", stats.uptime / 1000);
00036         printf("Sleep time: %llu ", stats.sleep_time / 1000);
00037         printf("Deep Sleep: %llu\r\n", stats.deep_sleep_time / 1000);
00038     }*/
00039 }
00040 
00041 void txDoneCB()
00042 {
00043     printf("got-tx-done\r\n");
00044     queue.call_in(500, tx_test);
00045 }
00046 
00047 void rxDoneCB(uint8_t size, float rssi, float snr)
00048 {
00049 }
00050 
00051 
00052 void radio_irq_callback()
00053 {
00054     queue.call(Radio::service);
00055 }
00056 
00057 
00058 const RadioEvents_t rev = {
00059     /* DioPin_top_half */     radio_irq_callback,
00060     /* TxDone_topHalf */    NULL,
00061     /* TxDone_botHalf */    txDoneCB,
00062     /* TxTimeout  */        NULL,
00063     /* RxDone  */           rxDoneCB,
00064     /* RxTimeout  */        NULL,
00065     /* RxError  */          NULL,
00066     /* FhssChangeChannel  */NULL,
00067     /* CadDone  */          NULL
00068 };
00069 
00070 int main()
00071 {
00072     //uint8_t seq = 0;
00073 
00074     printf("\r\nreset-tx ");
00075 
00076     Radio::Init(&rev);
00077 
00078     Radio::Standby();
00079     Radio::LoRaModemConfig(BW_KHZ, SPREADING_FACTOR, 1);
00080     Radio::SetChannel(CF_HZ);
00081 
00082     Radio::set_tx_dbm(20);
00083 
00084                // preambleLen, fixLen, crcOn, invIQ
00085     Radio::LoRaPacketConfig(8, false, true, false);
00086 
00087     queue.call_in(500, tx_test);
00088 
00089     queue.dispatch();
00090 }
00091