JongYong Park / Mbed 2 deprecated NUCLEO-F767_LIFI_4CH_os2_v2

Dependencies:   mbed

Committer:
JongYongPark
Date:
Tue Apr 09 09:11:24 2019 +0000
Revision:
21:82b5759f5047
Parent:
0:488aa8153e15
Child:
30:75cb79acdcff
Child:
34:d704131107dd
working version

Who changed what in which revision?

UserRevisionLine numberNew contents of line
JongYongPark 0:488aa8153e15 1 #include "driverLifiTx.h"
JongYongPark 0:488aa8153e15 2
JongYongPark 0:488aa8153e15 3 void LifiTx_LedBlink(int num)
JongYongPark 0:488aa8153e15 4 {
JongYongPark 0:488aa8153e15 5 switch(num) {
JongYongPark 0:488aa8153e15 6 case LIFI_CHANNEL_1:
JongYongPark 0:488aa8153e15 7 led_1 = ! led_1;
JongYongPark 0:488aa8153e15 8 break;
JongYongPark 0:488aa8153e15 9 case LIFI_CHANNEL_2:
JongYongPark 0:488aa8153e15 10 led_2 = ! led_2;
JongYongPark 0:488aa8153e15 11 break;
JongYongPark 0:488aa8153e15 12 case LIFI_CHANNEL_3:
JongYongPark 0:488aa8153e15 13 led_3 = ! led_3;
JongYongPark 0:488aa8153e15 14 break;
JongYongPark 0:488aa8153e15 15 case LIFI_CHANNEL_4:
JongYongPark 0:488aa8153e15 16 led_4 = ! led_4;
JongYongPark 0:488aa8153e15 17 break;
JongYongPark 0:488aa8153e15 18 default:
JongYongPark 0:488aa8153e15 19 led_1 = ! led_1;
JongYongPark 0:488aa8153e15 20 led_2 = ! led_2;
JongYongPark 0:488aa8153e15 21 led_3 = ! led_3;
JongYongPark 0:488aa8153e15 22 led_4 = ! led_4;
JongYongPark 0:488aa8153e15 23 break;
JongYongPark 0:488aa8153e15 24 }
JongYongPark 0:488aa8153e15 25 }
JongYongPark 21:82b5759f5047 26
JongYongPark 21:82b5759f5047 27 void LifiTx_DebugLedOn(){
JongYongPark 21:82b5759f5047 28 led_tx_debug = 1;
JongYongPark 21:82b5759f5047 29 }
JongYongPark 21:82b5759f5047 30 void LifiTx_DebugLedOff(){
JongYongPark 21:82b5759f5047 31 led_tx_debug = 0;
JongYongPark 21:82b5759f5047 32 }
JongYongPark 0:488aa8153e15 33 void LifiTx_LedOn(int num)
JongYongPark 0:488aa8153e15 34 {
JongYongPark 0:488aa8153e15 35 switch(num) {
JongYongPark 0:488aa8153e15 36 case LIFI_CHANNEL_1:
JongYongPark 0:488aa8153e15 37 led_1 = 1;
JongYongPark 0:488aa8153e15 38 break;
JongYongPark 0:488aa8153e15 39 case LIFI_CHANNEL_2:
JongYongPark 0:488aa8153e15 40 led_2 = 1;
JongYongPark 0:488aa8153e15 41 break;
JongYongPark 0:488aa8153e15 42 case LIFI_CHANNEL_3:
JongYongPark 0:488aa8153e15 43 led_3 = 1;
JongYongPark 0:488aa8153e15 44 break;
JongYongPark 0:488aa8153e15 45 case LIFI_CHANNEL_4:
JongYongPark 0:488aa8153e15 46 led_4 = 1;
JongYongPark 0:488aa8153e15 47 break;
JongYongPark 0:488aa8153e15 48 case LIFI_CHANNEL_ALL:
JongYongPark 0:488aa8153e15 49 default:
JongYongPark 0:488aa8153e15 50 led_1 = 1;
JongYongPark 0:488aa8153e15 51 led_2 = 1;
JongYongPark 0:488aa8153e15 52 led_3 = 1;
JongYongPark 0:488aa8153e15 53 led_4 = 1;
JongYongPark 0:488aa8153e15 54 break;
JongYongPark 0:488aa8153e15 55 }
JongYongPark 0:488aa8153e15 56 }
JongYongPark 0:488aa8153e15 57
JongYongPark 0:488aa8153e15 58 void LifiTx_LedOff(int num)
JongYongPark 0:488aa8153e15 59 {
JongYongPark 0:488aa8153e15 60 switch(num) {
JongYongPark 0:488aa8153e15 61 case LIFI_CHANNEL_1:
JongYongPark 0:488aa8153e15 62 led_1 = 0;
JongYongPark 0:488aa8153e15 63 break;
JongYongPark 0:488aa8153e15 64 case LIFI_CHANNEL_2:
JongYongPark 0:488aa8153e15 65 led_2 = 0;
JongYongPark 0:488aa8153e15 66 break;
JongYongPark 0:488aa8153e15 67 case LIFI_CHANNEL_3:
JongYongPark 0:488aa8153e15 68 led_3 = 0;
JongYongPark 0:488aa8153e15 69 break;
JongYongPark 0:488aa8153e15 70 case LIFI_CHANNEL_4:
JongYongPark 0:488aa8153e15 71 led_4 = 0;
JongYongPark 0:488aa8153e15 72 break;
JongYongPark 0:488aa8153e15 73 case LIFI_CHANNEL_ALL:
JongYongPark 0:488aa8153e15 74 default:
JongYongPark 0:488aa8153e15 75 led_1 = 0;
JongYongPark 0:488aa8153e15 76 led_2 = 0;
JongYongPark 0:488aa8153e15 77 led_3 = 0;
JongYongPark 0:488aa8153e15 78 led_4 = 0;
JongYongPark 0:488aa8153e15 79 break;
JongYongPark 0:488aa8153e15 80 }
JongYongPark 0:488aa8153e15 81 }
JongYongPark 0:488aa8153e15 82
JongYongPark 0:488aa8153e15 83 void LifiTx_LedTuning()
JongYongPark 0:488aa8153e15 84 {
JongYongPark 0:488aa8153e15 85 printf("\n ====== LifiTx_LedTuning === Press Long key to skip this function == \n");
JongYongPark 0:488aa8153e15 86 LifiTx_LedOff(LIFI_CHANNEL_ALL);
JongYongPark 0:488aa8153e15 87
JongYongPark 0:488aa8153e15 88 printf("\n => Turn On All LED \n");
JongYongPark 0:488aa8153e15 89 LifiTx_LedOn(LIFI_CHANNEL_ALL);
JongYongPark 0:488aa8153e15 90 buttonInitSkipLoop();
JongYongPark 0:488aa8153e15 91 while(1) {
JongYongPark 0:488aa8153e15 92 if( buttonCanSkipLoop() ) break;
JongYongPark 0:488aa8153e15 93 if( buttonCanSkipSuperLoop() ) return;
JongYongPark 0:488aa8153e15 94 wait(1);
JongYongPark 0:488aa8153e15 95 }
JongYongPark 0:488aa8153e15 96 printf("\n => Turn Off All LED \n");
JongYongPark 0:488aa8153e15 97 LifiTx_LedOff(LIFI_CHANNEL_ALL);
JongYongPark 0:488aa8153e15 98 buttonInitSkipLoop();
JongYongPark 0:488aa8153e15 99 while(1) {
JongYongPark 0:488aa8153e15 100 if( buttonCanSkipLoop() ) break;
JongYongPark 0:488aa8153e15 101 if( buttonCanSkipSuperLoop() ) return;
JongYongPark 0:488aa8153e15 102 wait(1);
JongYongPark 0:488aa8153e15 103 }
JongYongPark 0:488aa8153e15 104 printf("\n => Turn On - 1 LED \n");
JongYongPark 0:488aa8153e15 105 LifiTx_LedOn(LIFI_CHANNEL_1);
JongYongPark 0:488aa8153e15 106 buttonInitSkipLoop();
JongYongPark 0:488aa8153e15 107 while(1) {
JongYongPark 0:488aa8153e15 108 if( buttonCanSkipLoop() ) break;
JongYongPark 0:488aa8153e15 109 if( buttonCanSkipSuperLoop() ) return;
JongYongPark 0:488aa8153e15 110 wait(1);
JongYongPark 0:488aa8153e15 111 }
JongYongPark 0:488aa8153e15 112 printf("\n => Turn On - 2 LED \n");
JongYongPark 0:488aa8153e15 113 LifiTx_LedOn(LIFI_CHANNEL_2);
JongYongPark 0:488aa8153e15 114 buttonInitSkipLoop();
JongYongPark 0:488aa8153e15 115 while(1) {
JongYongPark 0:488aa8153e15 116 if( buttonCanSkipLoop() ) break;
JongYongPark 0:488aa8153e15 117 if( buttonCanSkipSuperLoop() ) return;
JongYongPark 0:488aa8153e15 118 wait(1);
JongYongPark 0:488aa8153e15 119 }
JongYongPark 0:488aa8153e15 120 printf("\n => Turn On - 3 LED \n");
JongYongPark 0:488aa8153e15 121 LifiTx_LedOn(LIFI_CHANNEL_3);
JongYongPark 0:488aa8153e15 122 buttonInitSkipLoop();
JongYongPark 0:488aa8153e15 123 while(1) {
JongYongPark 0:488aa8153e15 124 if( buttonCanSkipLoop() ) break;
JongYongPark 0:488aa8153e15 125 if( buttonCanSkipSuperLoop() ) return;
JongYongPark 0:488aa8153e15 126 wait(1);
JongYongPark 0:488aa8153e15 127 }
JongYongPark 0:488aa8153e15 128 printf("\n => Turn On - 4 LED \n");
JongYongPark 0:488aa8153e15 129 LifiTx_LedOn(LIFI_CHANNEL_4);
JongYongPark 0:488aa8153e15 130 buttonInitSkipLoop();
JongYongPark 0:488aa8153e15 131 while(1) {
JongYongPark 0:488aa8153e15 132 if( buttonCanSkipLoop() ) break;
JongYongPark 0:488aa8153e15 133 if( buttonCanSkipSuperLoop() ) return;
JongYongPark 0:488aa8153e15 134 wait(1);
JongYongPark 0:488aa8153e15 135 }
JongYongPark 0:488aa8153e15 136 printf("\n => Turn Off All LED \n");
JongYongPark 0:488aa8153e15 137 LifiTx_LedOff(LIFI_CHANNEL_ALL);
JongYongPark 0:488aa8153e15 138 }
JongYongPark 0:488aa8153e15 139
JongYongPark 0:488aa8153e15 140 void LifiTx_Run()
JongYongPark 0:488aa8153e15 141 {
JongYongPark 0:488aa8153e15 142 #if USE_LOCAL_TICKER
JongYongPark 0:488aa8153e15 143 Ticker lifi_tx_timer;
JongYongPark 0:488aa8153e15 144 #endif
JongYongPark 0:488aa8153e15 145
JongYongPark 0:488aa8153e15 146 printf("\n======== LifiTx_Run =========\n");
JongYongPark 0:488aa8153e15 147 // us_timestamp_t us_time;
JongYongPark 0:488aa8153e15 148
JongYongPark 0:488aa8153e15 149 LifiTx_Init();
JongYongPark 0:488aa8153e15 150 printf("Tx Symbol Feq=%f sec / %d us \n",LIFI_RX_SYMBOL_PERIOD_SEC,LIFI_RX_SYMBOL_PERIOD_US);
JongYongPark 0:488aa8153e15 151 printf("Rx Sample Feq=%f sec / %d us \n",LIFI_RX_SYMBOL_SAMPLE_PERIOD_SEC,LIFI_RX_SYMBOL_SAMPLE_PERIOD_US);
JongYongPark 0:488aa8153e15 152 printf("Rx Sample/Symbol=%d times / adc edge threshod=%d mV \n",LIFI_RX_SAMPLE_PER_SYMBOL,LIFI_RX_EDGE_THRESHOLD);
JongYongPark 0:488aa8153e15 153 printf("MIMO LIFI_MIMO_CHANNEL_NUM=%d / LIFI_ACTUAL_MAX_CHANNEL_NUM=%d \n",LIFI_MIMO_CHANNEL_NUM,LIFI_ACTUAL_MAX_CHANNEL_NUM);
JongYongPark 0:488aa8153e15 154 printf("Tx interval = %d sec \n",LIFI_DEMO_TX_PERIOD_SEC);
JongYongPark 0:488aa8153e15 155
JongYongPark 0:488aa8153e15 156 lifi_tx_timer.attach(&LifiTx_OokEmitHalfBit, LIFI_RX_SYMBOL_PERIOD_SEC);
JongYongPark 0:488aa8153e15 157
JongYongPark 0:488aa8153e15 158 //printf("TimerFeq=%f us \n",);
JongYongPark 0:488aa8153e15 159 //us_time = LIFI_RX_SYMBOL_PERIOD_US;
JongYongPark 0:488aa8153e15 160 //lifi_tx_timer.attach_us(&LifiTx_OokEmitHalfBit, us_time);
JongYongPark 0:488aa8153e15 161 //////// main loop ///////
JongYongPark 0:488aa8153e15 162 buttonInitSkipLoop();
JongYongPark 0:488aa8153e15 163 while(1) {
JongYongPark 0:488aa8153e15 164 if( buttonCanSkipLoop() ) return;
JongYongPark 0:488aa8153e15 165 LifiTx_SendHelloMsg();
JongYongPark 0:488aa8153e15 166 wait(LIFI_DEMO_TX_PERIOD_SEC);
JongYongPark 0:488aa8153e15 167 if(LifiTx_IsBusy()) wait(1);
JongYongPark 0:488aa8153e15 168 if(LifiTx_IsBusy()) wait(1);
JongYongPark 0:488aa8153e15 169 if(LifiTx_IsBusy()) wait(1);
JongYongPark 0:488aa8153e15 170 }
JongYongPark 0:488aa8153e15 171 }