JongYong Park / Mbed 2 deprecated NUCLEO-F767_LIFI_4CH_os2_v2

Dependencies:   mbed

Committer:
JongYongPark
Date:
Wed Apr 10 11:56:56 2019 +0900
Revision:
34:d704131107dd
Parent:
21:82b5759f5047
Child:
35:dcddce1fe126
add new struct

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