JongYong Park / Mbed 2 deprecated NUCLEO-F767_LIFI_4CH_os2_v2

Dependencies:   mbed

Committer:
JongYongPark
Date:
Tue Apr 09 12:06:34 2019 +0000
Revision:
26:26474003e443
Parent:
0:488aa8153e15
Child:
28:1754d532cb52
working version again

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