SX126xDevKit

Dependencies:   mbed DmTftLibrary SX126xLib

Committer:
GregCr
Date:
Tue Sep 05 08:15:37 2017 +0000
Revision:
0:e5420f1a8a1a
Child:
1:b96176a4ccb8
Candidate Release

Who changed what in which revision?

UserRevisionLine numberNew contents of line
GregCr 0:e5420f1a8a1a 1 /*
GregCr 0:e5420f1a8a1a 2 ______ _
GregCr 0:e5420f1a8a1a 3 / _____) _ | |
GregCr 0:e5420f1a8a1a 4 ( (____ _____ ____ _| |_ _____ ____| |__
GregCr 0:e5420f1a8a1a 5 \____ \| ___ | (_ _) ___ |/ ___) _ \
GregCr 0:e5420f1a8a1a 6 _____) ) ____| | | || |_| ____( (___| | | |
GregCr 0:e5420f1a8a1a 7 (______/|_____)_|_|_| \__)_____)\____)_| |_|
GregCr 0:e5420f1a8a1a 8 (C)2016 Semtech
GregCr 0:e5420f1a8a1a 9
GregCr 0:e5420f1a8a1a 10 Description: Main program
GregCr 0:e5420f1a8a1a 11
GregCr 0:e5420f1a8a1a 12 Maintainer: Gregory Cristian & Gilbert Menth
GregCr 0:e5420f1a8a1a 13 */
GregCr 0:e5420f1a8a1a 14
GregCr 0:e5420f1a8a1a 15 #include "mbed.h"
GregCr 0:e5420f1a8a1a 16 #include "Timers.h"
GregCr 0:e5420f1a8a1a 17 #include "Menu.h"
GregCr 0:e5420f1a8a1a 18 #include "Eeprom.h"
GregCr 0:e5420f1a8a1a 19 #include "stm32l4xx_hal.h"
GregCr 0:e5420f1a8a1a 20
GregCr 0:e5420f1a8a1a 21 /*!
GregCr 0:e5420f1a8a1a 22 * \brief Define IO for Unused Pin
GregCr 0:e5420f1a8a1a 23 */
GregCr 0:e5420f1a8a1a 24 DigitalOut F_CS( D6 ); // MBED description of pin
GregCr 0:e5420f1a8a1a 25 DigitalIn blueButton( USER_BUTTON );
GregCr 0:e5420f1a8a1a 26
GregCr 0:e5420f1a8a1a 27 void baud( int baudrate )
GregCr 0:e5420f1a8a1a 28 {
GregCr 0:e5420f1a8a1a 29 Serial s( USBTX, USBRX );
GregCr 0:e5420f1a8a1a 30 s.baud( baudrate );
GregCr 0:e5420f1a8a1a 31 }
GregCr 0:e5420f1a8a1a 32
GregCr 0:e5420f1a8a1a 33 int main( )
GregCr 0:e5420f1a8a1a 34 {
GregCr 0:e5420f1a8a1a 35 uint8_t currentPage = START_PAGE;
GregCr 0:e5420f1a8a1a 36 uint8_t demoStatusUpdate = 0;
GregCr 0:e5420f1a8a1a 37 uint8_t deviceConnected = 0;
GregCr 0:e5420f1a8a1a 38
GregCr 0:e5420f1a8a1a 39 if( blueButton == 0 )
GregCr 0:e5420f1a8a1a 40 {
GregCr 0:e5420f1a8a1a 41 EepromInit( 0xFF );
GregCr 0:e5420f1a8a1a 42 NVIC_SystemReset( );
GregCr 0:e5420f1a8a1a 43 }
GregCr 0:e5420f1a8a1a 44
GregCr 0:e5420f1a8a1a 45 baud( 115200 ); // change here to increase or decrease the speed of the UART print
GregCr 0:e5420f1a8a1a 46
GregCr 0:e5420f1a8a1a 47 F_CS = 1;
GregCr 0:e5420f1a8a1a 48
GregCr 0:e5420f1a8a1a 49 deviceConnected = GetConnectedDevice( );
GregCr 0:e5420f1a8a1a 50 EepromInit( deviceConnected );
GregCr 0:e5420f1a8a1a 51 InitDemoApplication( );
GregCr 0:e5420f1a8a1a 52 MenuInit( deviceConnected );
GregCr 0:e5420f1a8a1a 53 TimersInit( );
GregCr 0:e5420f1a8a1a 54
GregCr 0:e5420f1a8a1a 55 printf( "Start SX126xDevKit : %s\n\r", FIRMWARE_VERSION );
GregCr 0:e5420f1a8a1a 56
GregCr 0:e5420f1a8a1a 57 while( 1 )
GregCr 0:e5420f1a8a1a 58 {
GregCr 0:e5420f1a8a1a 59 currentPage = MenuHandler( demoStatusUpdate );
GregCr 0:e5420f1a8a1a 60
GregCr 0:e5420f1a8a1a 61 switch( currentPage )
GregCr 0:e5420f1a8a1a 62 {
GregCr 0:e5420f1a8a1a 63 case START_PAGE:
GregCr 0:e5420f1a8a1a 64 break;
GregCr 0:e5420f1a8a1a 65
GregCr 0:e5420f1a8a1a 66 case PAGE_PING_PONG:
GregCr 0:e5420f1a8a1a 67 demoStatusUpdate = RunDemoApplicationPingPong( );
GregCr 0:e5420f1a8a1a 68 break;
GregCr 0:e5420f1a8a1a 69
GregCr 0:e5420f1a8a1a 70 case PAGE_PER:
GregCr 0:e5420f1a8a1a 71 demoStatusUpdate = RunDemoApplicationPer( );
GregCr 0:e5420f1a8a1a 72 break;
GregCr 0:e5420f1a8a1a 73
GregCr 0:e5420f1a8a1a 74 case PAGE_SLEEP_MODE:
GregCr 0:e5420f1a8a1a 75 demoStatusUpdate = RunDemoSleepMode( );
GregCr 0:e5420f1a8a1a 76 break;
GregCr 0:e5420f1a8a1a 77
GregCr 0:e5420f1a8a1a 78 case PAGE_STBY_RC_MODE:
GregCr 0:e5420f1a8a1a 79 demoStatusUpdate = RunDemoStandbyRcMode( );
GregCr 0:e5420f1a8a1a 80 break;
GregCr 0:e5420f1a8a1a 81
GregCr 0:e5420f1a8a1a 82 case PAGE_STBY_XOSC_MODE:
GregCr 0:e5420f1a8a1a 83 demoStatusUpdate = RunDemoStandbyXoscMode( );
GregCr 0:e5420f1a8a1a 84 break;
GregCr 0:e5420f1a8a1a 85
GregCr 0:e5420f1a8a1a 86 case PAGE_TX_CW:
GregCr 0:e5420f1a8a1a 87 demoStatusUpdate = RunDemoTxCw( );
GregCr 0:e5420f1a8a1a 88 break;
GregCr 0:e5420f1a8a1a 89
GregCr 0:e5420f1a8a1a 90 case PAGE_CONT_MODULATION:
GregCr 0:e5420f1a8a1a 91 demoStatusUpdate = RunDemoTxContinuousModulation( );
GregCr 0:e5420f1a8a1a 92 break;
GregCr 0:e5420f1a8a1a 93
GregCr 0:e5420f1a8a1a 94 case PAGE_CONT_RX:
GregCr 0:e5420f1a8a1a 95 demoStatusUpdate = RunDemoRxContinuous( );
GregCr 0:e5420f1a8a1a 96 break;
GregCr 0:e5420f1a8a1a 97 case PAGE_UTILITIES:
GregCr 0:e5420f1a8a1a 98 break;
GregCr 0:e5420f1a8a1a 99
GregCr 0:e5420f1a8a1a 100 default: // Any page not running a demo
GregCr 0:e5420f1a8a1a 101 break;
GregCr 0:e5420f1a8a1a 102 }
GregCr 0:e5420f1a8a1a 103 }
GregCr 0:e5420f1a8a1a 104 }