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@30:75cb79acdcff, 2019-04-10 (annotated)
- Committer:
- JongYongPark
- Date:
- Wed Apr 10 09:29:39 2019 +0900
- Revision:
- 30:75cb79acdcff
- Parent:
- 21:82b5759f5047
- Parent:
- 28:1754d532cb52
- Child:
- 33:5c748056c462
Merge
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 | 21:82b5759f5047 | 29 | led_tx_debug = 1; |
JongYongPark | 26:26474003e443 | 30 | } |
JongYongPark | 26:26474003e443 | 31 | void LifiTx_DebugLedOff(){ |
JongYongPark | 28:1754d532cb52 | 32 | // online compile error |
JongYongPark | 26:26474003e443 | 33 | //led_tx_debug = 0; |
JongYongPark | 26:26474003e443 | 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 | } |