SX126xDevKit
Dependencies: mbed DmTftLibrary SX126xLib
main.cpp@0:e5420f1a8a1a, 2017-09-05 (annotated)
- 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?
User | Revision | Line number | New 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 | } |