Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
driverLifiTx.cpp@26:26474003e443, 2019-04-09 (annotated)
- 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?
User | Revision | Line number | New 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 | } |