JongYong Park / Mbed 2 deprecated NUCLEO-F767_LIFI_4CH_os2_v2

Dependencies:   mbed

Committer:
JongYongPark
Date:
Wed Mar 20 09:24:35 2019 +0000
Revision:
0:488aa8153e15
Child:
21:82b5759f5047
Child:
26:26474003e443
initial 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 0:488aa8153e15 26 void LifiTx_LedOn(int num)
JongYongPark 0:488aa8153e15 27 {
JongYongPark 0:488aa8153e15 28 switch(num) {
JongYongPark 0:488aa8153e15 29 case LIFI_CHANNEL_1:
JongYongPark 0:488aa8153e15 30 led_1 = 1;
JongYongPark 0:488aa8153e15 31 break;
JongYongPark 0:488aa8153e15 32 case LIFI_CHANNEL_2:
JongYongPark 0:488aa8153e15 33 led_2 = 1;
JongYongPark 0:488aa8153e15 34 break;
JongYongPark 0:488aa8153e15 35 case LIFI_CHANNEL_3:
JongYongPark 0:488aa8153e15 36 led_3 = 1;
JongYongPark 0:488aa8153e15 37 break;
JongYongPark 0:488aa8153e15 38 case LIFI_CHANNEL_4:
JongYongPark 0:488aa8153e15 39 led_4 = 1;
JongYongPark 0:488aa8153e15 40 break;
JongYongPark 0:488aa8153e15 41 case LIFI_CHANNEL_ALL:
JongYongPark 0:488aa8153e15 42 default:
JongYongPark 0:488aa8153e15 43 led_1 = 1;
JongYongPark 0:488aa8153e15 44 led_2 = 1;
JongYongPark 0:488aa8153e15 45 led_3 = 1;
JongYongPark 0:488aa8153e15 46 led_4 = 1;
JongYongPark 0:488aa8153e15 47 break;
JongYongPark 0:488aa8153e15 48 }
JongYongPark 0:488aa8153e15 49 }
JongYongPark 0:488aa8153e15 50
JongYongPark 0:488aa8153e15 51 void LifiTx_LedOff(int num)
JongYongPark 0:488aa8153e15 52 {
JongYongPark 0:488aa8153e15 53 switch(num) {
JongYongPark 0:488aa8153e15 54 case LIFI_CHANNEL_1:
JongYongPark 0:488aa8153e15 55 led_1 = 0;
JongYongPark 0:488aa8153e15 56 break;
JongYongPark 0:488aa8153e15 57 case LIFI_CHANNEL_2:
JongYongPark 0:488aa8153e15 58 led_2 = 0;
JongYongPark 0:488aa8153e15 59 break;
JongYongPark 0:488aa8153e15 60 case LIFI_CHANNEL_3:
JongYongPark 0:488aa8153e15 61 led_3 = 0;
JongYongPark 0:488aa8153e15 62 break;
JongYongPark 0:488aa8153e15 63 case LIFI_CHANNEL_4:
JongYongPark 0:488aa8153e15 64 led_4 = 0;
JongYongPark 0:488aa8153e15 65 break;
JongYongPark 0:488aa8153e15 66 case LIFI_CHANNEL_ALL:
JongYongPark 0:488aa8153e15 67 default:
JongYongPark 0:488aa8153e15 68 led_1 = 0;
JongYongPark 0:488aa8153e15 69 led_2 = 0;
JongYongPark 0:488aa8153e15 70 led_3 = 0;
JongYongPark 0:488aa8153e15 71 led_4 = 0;
JongYongPark 0:488aa8153e15 72 break;
JongYongPark 0:488aa8153e15 73 }
JongYongPark 0:488aa8153e15 74 }
JongYongPark 0:488aa8153e15 75
JongYongPark 0:488aa8153e15 76 void LifiTx_LedTuning()
JongYongPark 0:488aa8153e15 77 {
JongYongPark 0:488aa8153e15 78 printf("\n ====== LifiTx_LedTuning === Press Long key to skip this function == \n");
JongYongPark 0:488aa8153e15 79 LifiTx_LedOff(LIFI_CHANNEL_ALL);
JongYongPark 0:488aa8153e15 80
JongYongPark 0:488aa8153e15 81 printf("\n => Turn On All LED \n");
JongYongPark 0:488aa8153e15 82 LifiTx_LedOn(LIFI_CHANNEL_ALL);
JongYongPark 0:488aa8153e15 83 buttonInitSkipLoop();
JongYongPark 0:488aa8153e15 84 while(1) {
JongYongPark 0:488aa8153e15 85 if( buttonCanSkipLoop() ) break;
JongYongPark 0:488aa8153e15 86 if( buttonCanSkipSuperLoop() ) return;
JongYongPark 0:488aa8153e15 87 wait(1);
JongYongPark 0:488aa8153e15 88 }
JongYongPark 0:488aa8153e15 89 printf("\n => Turn Off All LED \n");
JongYongPark 0:488aa8153e15 90 LifiTx_LedOff(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 On - 1 LED \n");
JongYongPark 0:488aa8153e15 98 LifiTx_LedOn(LIFI_CHANNEL_1);
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 - 2 LED \n");
JongYongPark 0:488aa8153e15 106 LifiTx_LedOn(LIFI_CHANNEL_2);
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 - 3 LED \n");
JongYongPark 0:488aa8153e15 114 LifiTx_LedOn(LIFI_CHANNEL_3);
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 - 4 LED \n");
JongYongPark 0:488aa8153e15 122 LifiTx_LedOn(LIFI_CHANNEL_4);
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 Off All LED \n");
JongYongPark 0:488aa8153e15 130 LifiTx_LedOff(LIFI_CHANNEL_ALL);
JongYongPark 0:488aa8153e15 131 }
JongYongPark 0:488aa8153e15 132
JongYongPark 0:488aa8153e15 133 void LifiTx_Run()
JongYongPark 0:488aa8153e15 134 {
JongYongPark 0:488aa8153e15 135 #if USE_LOCAL_TICKER
JongYongPark 0:488aa8153e15 136 Ticker lifi_tx_timer;
JongYongPark 0:488aa8153e15 137 #endif
JongYongPark 0:488aa8153e15 138
JongYongPark 0:488aa8153e15 139 printf("\n======== LifiTx_Run =========\n");
JongYongPark 0:488aa8153e15 140 // us_timestamp_t us_time;
JongYongPark 0:488aa8153e15 141
JongYongPark 0:488aa8153e15 142 LifiTx_Init();
JongYongPark 0:488aa8153e15 143 printf("Tx Symbol Feq=%f sec / %d us \n",LIFI_RX_SYMBOL_PERIOD_SEC,LIFI_RX_SYMBOL_PERIOD_US);
JongYongPark 0:488aa8153e15 144 printf("Rx Sample Feq=%f sec / %d us \n",LIFI_RX_SYMBOL_SAMPLE_PERIOD_SEC,LIFI_RX_SYMBOL_SAMPLE_PERIOD_US);
JongYongPark 0:488aa8153e15 145 printf("Rx Sample/Symbol=%d times / adc edge threshod=%d mV \n",LIFI_RX_SAMPLE_PER_SYMBOL,LIFI_RX_EDGE_THRESHOLD);
JongYongPark 0:488aa8153e15 146 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 147 printf("Tx interval = %d sec \n",LIFI_DEMO_TX_PERIOD_SEC);
JongYongPark 0:488aa8153e15 148
JongYongPark 0:488aa8153e15 149 lifi_tx_timer.attach(&LifiTx_OokEmitHalfBit, LIFI_RX_SYMBOL_PERIOD_SEC);
JongYongPark 0:488aa8153e15 150
JongYongPark 0:488aa8153e15 151 //printf("TimerFeq=%f us \n",);
JongYongPark 0:488aa8153e15 152 //us_time = LIFI_RX_SYMBOL_PERIOD_US;
JongYongPark 0:488aa8153e15 153 //lifi_tx_timer.attach_us(&LifiTx_OokEmitHalfBit, us_time);
JongYongPark 0:488aa8153e15 154 //////// main loop ///////
JongYongPark 0:488aa8153e15 155 buttonInitSkipLoop();
JongYongPark 0:488aa8153e15 156 while(1) {
JongYongPark 0:488aa8153e15 157 if( buttonCanSkipLoop() ) return;
JongYongPark 0:488aa8153e15 158 LifiTx_SendHelloMsg();
JongYongPark 0:488aa8153e15 159 wait(LIFI_DEMO_TX_PERIOD_SEC);
JongYongPark 0:488aa8153e15 160 if(LifiTx_IsBusy()) wait(1);
JongYongPark 0:488aa8153e15 161 if(LifiTx_IsBusy()) wait(1);
JongYongPark 0:488aa8153e15 162 if(LifiTx_IsBusy()) wait(1);
JongYongPark 0:488aa8153e15 163 }
JongYongPark 0:488aa8153e15 164 }