20 Gennaio 2022 LA0002

Dependencies:   mbed QEI DmTftLibrary

Committer:
mverdy
Date:
Fri Aug 18 08:26:13 2017 +0000
Revision:
15:ed7ed20b7114
Parent:
14:ebd89dacc807
Child:
17:a0bbfc228415
Update factory reset feature with reset of eeprom and soft reset of the board; The factory reset is now also callable by pressing user button during boot

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"
mverdy 14:ebd89dacc807 21 #include "sx1280-hal.h"
mverdy 15:ed7ed20b7114 22 #include "main.h"
GregCr 0:9c0917bfde97 23
GregCr 0:9c0917bfde97 24
GregCr 0:9c0917bfde97 25 /*!
GregCr 0:9c0917bfde97 26 * \brief Define IO for Unused Pin
GregCr 0:9c0917bfde97 27 */
GregCr 0:9c0917bfde97 28 DigitalOut F_CS( D6 ); // MBED description of pin
GregCr 0:9c0917bfde97 29 DigitalOut SD_CS( D8 ); // MBED description of pin
mverdy 15:ed7ed20b7114 30 DigitalIn userButton( USER_BUTTON );
mverdy 15:ed7ed20b7114 31
GregCr 0:9c0917bfde97 32
GregCr 0:9c0917bfde97 33 /*!
GregCr 0:9c0917bfde97 34 * \brief Specify serial datarate for UART debug output
GregCr 0:9c0917bfde97 35 */
GregCr 0:9c0917bfde97 36 void baud( int baudrate )
GregCr 0:9c0917bfde97 37 {
GregCr 0:9c0917bfde97 38 Serial s( USBTX, USBRX );
GregCr 0:9c0917bfde97 39 s.baud( baudrate );
GregCr 0:9c0917bfde97 40 }
GregCr 0:9c0917bfde97 41
mverdy 14:ebd89dacc807 42 extern SX1280Hal Radio;
mverdy 14:ebd89dacc807 43
GregCr 0:9c0917bfde97 44 int main( )
GregCr 0:9c0917bfde97 45 {
GregCr 0:9c0917bfde97 46 uint8_t currentPage = START_PAGE;
GregCr 0:9c0917bfde97 47 uint8_t demoStatusUpdate = 0; // used for screen display status
GregCr 0:9c0917bfde97 48
GregCr 0:9c0917bfde97 49 baud( 115200 );
GregCr 0:9c0917bfde97 50
GregCr 0:9c0917bfde97 51 F_CS = 1;
GregCr 0:9c0917bfde97 52 SD_CS = 1;
GregCr 0:9c0917bfde97 53
mverdy 14:ebd89dacc807 54 printf( "Starting SX1280DevKit : %s\n\r", FIRMWARE_VERSION );
mverdy 14:ebd89dacc807 55
GregCr 0:9c0917bfde97 56 EepromInit( );
mverdy 15:ed7ed20b7114 57
mverdy 15:ed7ed20b7114 58 if( userButton == 0 )
mverdy 15:ed7ed20b7114 59 {
mverdy 15:ed7ed20b7114 60 FactoryReset( );
mverdy 15:ed7ed20b7114 61 }
mverdy 15:ed7ed20b7114 62
GregCr 0:9c0917bfde97 63 InitDemoApplication( );
GregCr 0:9c0917bfde97 64 MenuInit( );
GregCr 0:9c0917bfde97 65 TimersInit( );
GregCr 0:9c0917bfde97 66 Max7GpsInit( );
GregCr 0:9c0917bfde97 67 SX9306ProximityInit( );
GregCr 0:9c0917bfde97 68
mverdy 14:ebd89dacc807 69 printf( "Radio version: 0x%x\n\r", Radio.GetFirmwareVersion( ) );
GregCr 0:9c0917bfde97 70
GregCr 0:9c0917bfde97 71 while( 1 )
GregCr 0:9c0917bfde97 72 {
GregCr 0:9c0917bfde97 73 currentPage = MenuHandler( demoStatusUpdate );
GregCr 0:9c0917bfde97 74
GregCr 0:9c0917bfde97 75 switch( currentPage )
GregCr 0:9c0917bfde97 76 {
GregCr 0:9c0917bfde97 77 case START_PAGE:
GregCr 0:9c0917bfde97 78 break;
GregCr 0:9c0917bfde97 79
GregCr 0:9c0917bfde97 80 case PAGE_PING_PONG:
GregCr 0:9c0917bfde97 81 demoStatusUpdate = RunDemoApplicationPingPong( );
GregCr 0:9c0917bfde97 82 break;
GregCr 0:9c0917bfde97 83
GregCr 0:9c0917bfde97 84 case PAGE_PER:
GregCr 0:9c0917bfde97 85 demoStatusUpdate = RunDemoApplicationPer( );
GregCr 0:9c0917bfde97 86 break;
GregCr 0:9c0917bfde97 87
GregCr 0:9c0917bfde97 88 case PAGE_RANGING_MASTER:
GregCr 0:9c0917bfde97 89 case PAGE_RANGING_SLAVE:
GregCr 0:9c0917bfde97 90 demoStatusUpdate = RunDemoApplicationRanging( );
GregCr 0:9c0917bfde97 91 break;
GregCr 0:9c0917bfde97 92
GregCr 0:9c0917bfde97 93 case PAGE_SLEEP_MODE:
GregCr 0:9c0917bfde97 94 demoStatusUpdate = RunDemoSleepMode( );
GregCr 0:9c0917bfde97 95 break;
GregCr 0:9c0917bfde97 96
GregCr 0:9c0917bfde97 97 case PAGE_STBY_RC_MODE:
GregCr 0:9c0917bfde97 98 demoStatusUpdate = RunDemoStandbyRcMode( );
GregCr 0:9c0917bfde97 99 break;
GregCr 0:9c0917bfde97 100
GregCr 0:9c0917bfde97 101 case PAGE_STBY_XOSC_MODE:
GregCr 0:9c0917bfde97 102 demoStatusUpdate = RunDemoStandbyXoscMode( );
GregCr 0:9c0917bfde97 103 break;
GregCr 0:9c0917bfde97 104
GregCr 0:9c0917bfde97 105 case PAGE_TX_CW:
GregCr 0:9c0917bfde97 106 demoStatusUpdate = RunDemoTxCw( );
GregCr 0:9c0917bfde97 107 break;
GregCr 0:9c0917bfde97 108
GregCr 0:9c0917bfde97 109 case PAGE_CONT_MODULATION:
GregCr 0:9c0917bfde97 110 demoStatusUpdate = RunDemoTxContinuousModulation( );
GregCr 0:9c0917bfde97 111 break;
GregCr 0:9c0917bfde97 112
GregCr 0:9c0917bfde97 113 case PAGE_UTILITIES:
GregCr 0:9c0917bfde97 114 // Extracts time and position information from the GPS module
GregCr 0:9c0917bfde97 115 Max7GpsHandle( );
GregCr 0:9c0917bfde97 116 SX9306ProximityHandle( ); //Deals with the proximity IC readings
GregCr 0:9c0917bfde97 117 break;
GregCr 0:9c0917bfde97 118
GregCr 0:9c0917bfde97 119 default: // Any page not running a demo
GregCr 0:9c0917bfde97 120 break;
GregCr 0:9c0917bfde97 121 }
GregCr 0:9c0917bfde97 122 }
GregCr 0:9c0917bfde97 123 }
mverdy 15:ed7ed20b7114 124
mverdy 15:ed7ed20b7114 125 void FactoryReset( void )
mverdy 15:ed7ed20b7114 126 {
mverdy 15:ed7ed20b7114 127 EepromFactoryReset( );
mverdy 15:ed7ed20b7114 128 HAL_NVIC_SystemReset( );
mverdy 15:ed7ed20b7114 129 }