This code holds the complete demo set for the sx1280: PingPong, PER and Ranging Outdoor demo application. >>>>> This code MUST run on the mbed library release 127 or everything will be painfully slow.

Dependencies:   mbed SX1280Lib DmTftLibrary

* This code MUST run on the mbed library release 127 or everything will be painfully slow.*
Committer:
GregCr
Date:
Mon Mar 13 15:12:05 2017 +0000
Revision:
0:9c0917bfde97
Child:
14:ebd89dacc807
alpha release

Who changed what in which revision?

UserRevisionLine numberNew contents of line
GregCr 0:9c0917bfde97 1 /*
GregCr 0:9c0917bfde97 2 ______ _
GregCr 0:9c0917bfde97 3 / _____) _ | |
GregCr 0:9c0917bfde97 4 ( (____ _____ ____ _| |_ _____ ____| |__
GregCr 0:9c0917bfde97 5 \____ \| ___ | (_ _) ___ |/ ___) _ \
GregCr 0:9c0917bfde97 6 _____) ) ____| | | || |_| ____( (___| | | |
GregCr 0:9c0917bfde97 7 (______/|_____)_|_|_| \__)_____)\____)_| |_|
GregCr 0:9c0917bfde97 8 (C)2016 Semtech
GregCr 0:9c0917bfde97 9
GregCr 0:9c0917bfde97 10 Description: Main program
GregCr 0:9c0917bfde97 11
GregCr 0:9c0917bfde97 12 Maintainer: Gregory Cristian & Gilbert Menth
GregCr 0:9c0917bfde97 13 */
GregCr 0:9c0917bfde97 14
GregCr 0:9c0917bfde97 15 #include "mbed.h"
GregCr 0:9c0917bfde97 16 #include "Timers.h"
GregCr 0:9c0917bfde97 17 #include "Menu.h"
GregCr 0:9c0917bfde97 18 #include "Eeprom.h"
GregCr 0:9c0917bfde97 19 #include "GpsMax7.h"
GregCr 0:9c0917bfde97 20 #include "SX9306.h"
GregCr 0:9c0917bfde97 21
GregCr 0:9c0917bfde97 22
GregCr 0:9c0917bfde97 23 /*!
GregCr 0:9c0917bfde97 24 * \brief Define IO for Unused Pin
GregCr 0:9c0917bfde97 25 */
GregCr 0:9c0917bfde97 26 DigitalOut F_CS( D6 ); // MBED description of pin
GregCr 0:9c0917bfde97 27 DigitalOut SD_CS( D8 ); // MBED description of pin
GregCr 0:9c0917bfde97 28
GregCr 0:9c0917bfde97 29 /*!
GregCr 0:9c0917bfde97 30 * \brief Specify serial datarate for UART debug output
GregCr 0:9c0917bfde97 31 */
GregCr 0:9c0917bfde97 32 void baud( int baudrate )
GregCr 0:9c0917bfde97 33 {
GregCr 0:9c0917bfde97 34 Serial s( USBTX, USBRX );
GregCr 0:9c0917bfde97 35 s.baud( baudrate );
GregCr 0:9c0917bfde97 36 }
GregCr 0:9c0917bfde97 37
GregCr 0:9c0917bfde97 38 int main( )
GregCr 0:9c0917bfde97 39 {
GregCr 0:9c0917bfde97 40 uint8_t currentPage = START_PAGE;
GregCr 0:9c0917bfde97 41 uint8_t demoStatusUpdate = 0; // used for screen display status
GregCr 0:9c0917bfde97 42
GregCr 0:9c0917bfde97 43 baud( 115200 );
GregCr 0:9c0917bfde97 44
GregCr 0:9c0917bfde97 45 F_CS = 1;
GregCr 0:9c0917bfde97 46 SD_CS = 1;
GregCr 0:9c0917bfde97 47
GregCr 0:9c0917bfde97 48 EepromInit( );
GregCr 0:9c0917bfde97 49 InitDemoApplication( );
GregCr 0:9c0917bfde97 50 MenuInit( );
GregCr 0:9c0917bfde97 51 TimersInit( );
GregCr 0:9c0917bfde97 52 Max7GpsInit( );
GregCr 0:9c0917bfde97 53 SX9306ProximityInit( );
GregCr 0:9c0917bfde97 54
GregCr 0:9c0917bfde97 55 printf( "Start SX1280DevKit : %s\n\r", FIRMWARE_VERSION );
GregCr 0:9c0917bfde97 56
GregCr 0:9c0917bfde97 57 while( 1 )
GregCr 0:9c0917bfde97 58 {
GregCr 0:9c0917bfde97 59 currentPage = MenuHandler( demoStatusUpdate );
GregCr 0:9c0917bfde97 60
GregCr 0:9c0917bfde97 61 switch( currentPage )
GregCr 0:9c0917bfde97 62 {
GregCr 0:9c0917bfde97 63 case START_PAGE:
GregCr 0:9c0917bfde97 64 break;
GregCr 0:9c0917bfde97 65
GregCr 0:9c0917bfde97 66 case PAGE_PING_PONG:
GregCr 0:9c0917bfde97 67 demoStatusUpdate = RunDemoApplicationPingPong( );
GregCr 0:9c0917bfde97 68 break;
GregCr 0:9c0917bfde97 69
GregCr 0:9c0917bfde97 70 case PAGE_PER:
GregCr 0:9c0917bfde97 71 demoStatusUpdate = RunDemoApplicationPer( );
GregCr 0:9c0917bfde97 72 break;
GregCr 0:9c0917bfde97 73
GregCr 0:9c0917bfde97 74 case PAGE_RANGING_MASTER:
GregCr 0:9c0917bfde97 75 case PAGE_RANGING_SLAVE:
GregCr 0:9c0917bfde97 76 demoStatusUpdate = RunDemoApplicationRanging( );
GregCr 0:9c0917bfde97 77 break;
GregCr 0:9c0917bfde97 78
GregCr 0:9c0917bfde97 79 case PAGE_SLEEP_MODE:
GregCr 0:9c0917bfde97 80 demoStatusUpdate = RunDemoSleepMode( );
GregCr 0:9c0917bfde97 81 break;
GregCr 0:9c0917bfde97 82
GregCr 0:9c0917bfde97 83 case PAGE_STBY_RC_MODE:
GregCr 0:9c0917bfde97 84 demoStatusUpdate = RunDemoStandbyRcMode( );
GregCr 0:9c0917bfde97 85 break;
GregCr 0:9c0917bfde97 86
GregCr 0:9c0917bfde97 87 case PAGE_STBY_XOSC_MODE:
GregCr 0:9c0917bfde97 88 demoStatusUpdate = RunDemoStandbyXoscMode( );
GregCr 0:9c0917bfde97 89 break;
GregCr 0:9c0917bfde97 90
GregCr 0:9c0917bfde97 91 case PAGE_TX_CW:
GregCr 0:9c0917bfde97 92 demoStatusUpdate = RunDemoTxCw( );
GregCr 0:9c0917bfde97 93 break;
GregCr 0:9c0917bfde97 94
GregCr 0:9c0917bfde97 95 case PAGE_CONT_MODULATION:
GregCr 0:9c0917bfde97 96 demoStatusUpdate = RunDemoTxContinuousModulation( );
GregCr 0:9c0917bfde97 97 break;
GregCr 0:9c0917bfde97 98
GregCr 0:9c0917bfde97 99 case PAGE_UTILITIES:
GregCr 0:9c0917bfde97 100 // Extracts time and position information from the GPS module
GregCr 0:9c0917bfde97 101 Max7GpsHandle( );
GregCr 0:9c0917bfde97 102 SX9306ProximityHandle( ); //Deals with the proximity IC readings
GregCr 0:9c0917bfde97 103 break;
GregCr 0:9c0917bfde97 104
GregCr 0:9c0917bfde97 105 default: // Any page not running a demo
GregCr 0:9c0917bfde97 106 break;
GregCr 0:9c0917bfde97 107 }
GregCr 0:9c0917bfde97 108 }
GregCr 0:9c0917bfde97 109 }