fork
Dependencies: TextLCD XBeeLib mbed-rtos mbed
Fork of ProjetReceiver by
main.cpp@8:120807be23b8, 2016-04-14 (annotated)
- Committer:
- vinbel93
- Date:
- Thu Apr 14 14:38:45 2016 +0000
- Revision:
- 8:120807be23b8
- Parent:
- 7:bd9bc9fa66c7
Final Advanced Version
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
jasmou | 0:3acd447c12c0 | 1 | #include "mbed.h" |
jasmou | 0:3acd447c12c0 | 2 | #include "XBeeLib.h" |
vinbel93 | 7:bd9bc9fa66c7 | 3 | #include "TextLCD.h" |
vinbel93 | 7:bd9bc9fa66c7 | 4 | #include "rtos.h" |
vinbel93 | 7:bd9bc9fa66c7 | 5 | |
jasmou | 0:3acd447c12c0 | 6 | using namespace XBeeLib; |
vinbel93 | 1:33b4a3b5cdb5 | 7 | |
vinbel93 | 5:08245a3e93a8 | 8 | PwmOut speaker(p21); |
vinbel93 | 7:bd9bc9fa66c7 | 9 | TextLCD lcd(p15, p16, p17, p18, p19, p20); // rs, e, d4-d7 |
vinbel93 | 7:bd9bc9fa66c7 | 10 | DigitalIn button_back(p28); |
vinbel93 | 7:bd9bc9fa66c7 | 11 | DigitalIn button_enter(p29); |
vinbel93 | 7:bd9bc9fa66c7 | 12 | DigitalIn button_next(p30); |
vinbel93 | 7:bd9bc9fa66c7 | 13 | Ticker timer; |
vinbel93 | 7:bd9bc9fa66c7 | 14 | int btn_b; |
vinbel93 | 7:bd9bc9fa66c7 | 15 | int btn_e; |
vinbel93 | 7:bd9bc9fa66c7 | 16 | int btn_n; |
jasmou | 0:3acd447c12c0 | 17 | Serial pc(USBTX, USBRX); |
jasmou | 0:3acd447c12c0 | 18 | |
jasmou | 0:3acd447c12c0 | 19 | bool capt_1; |
jasmou | 0:3acd447c12c0 | 20 | bool capt_2; |
jasmou | 0:3acd447c12c0 | 21 | bool capt_3; |
jasmou | 0:3acd447c12c0 | 22 | bool capt_4; |
jasmou | 0:3acd447c12c0 | 23 | bool capt_5; |
jasmou | 0:3acd447c12c0 | 24 | bool capt_6; |
vinbel93 | 7:bd9bc9fa66c7 | 25 | uint8_t GP2D12_value = 0; |
vinbel93 | 7:bd9bc9fa66c7 | 26 | |
vinbel93 | 7:bd9bc9fa66c7 | 27 | const float DO = 261.63; |
vinbel93 | 7:bd9bc9fa66c7 | 28 | const float RE = 293.66; |
vinbel93 | 7:bd9bc9fa66c7 | 29 | const float MI = 329.63; |
vinbel93 | 7:bd9bc9fa66c7 | 30 | const float FA_SHARP = 369.99; |
vinbel93 | 7:bd9bc9fa66c7 | 31 | const float SOL_SHARP = 415.30; |
vinbel93 | 7:bd9bc9fa66c7 | 32 | const float LA_SHARP = 466.16; |
vinbel93 | 6:59b0b6c1b5bb | 33 | |
vinbel93 | 6:59b0b6c1b5bb | 34 | const float DEMI_TON = 0.05946; |
vinbel93 | 6:59b0b6c1b5bb | 35 | |
vinbel93 | 6:59b0b6c1b5bb | 36 | float dutyCycle = 0.0002; |
vinbel93 | 7:bd9bc9fa66c7 | 37 | float octaveMult = 2.0; |
vinbel93 | 7:bd9bc9fa66c7 | 38 | int lastCapt = -1; |
vinbel93 | 7:bd9bc9fa66c7 | 39 | Thread* thread_digital; |
vinbel93 | 7:bd9bc9fa66c7 | 40 | Thread* thread_menu; |
vinbel93 | 6:59b0b6c1b5bb | 41 | |
vinbel93 | 7:bd9bc9fa66c7 | 42 | const char MainMenuText[2][16] = {"1. Volume", "2. Octave"}; |
vinbel93 | 7:bd9bc9fa66c7 | 43 | const char VolumeMenuText[4][16] = {"+1", "-1", "+10", "-10"}; |
vinbel93 | 7:bd9bc9fa66c7 | 44 | const char OctaveMenuText[3][16] = {"3", "4", "5"}; |
vinbel93 | 7:bd9bc9fa66c7 | 45 | const int maxMenuCount = 2; |
vinbel93 | 7:bd9bc9fa66c7 | 46 | const int maxVolumeCount = 4; |
vinbel93 | 7:bd9bc9fa66c7 | 47 | const int maxOctaveCount = 3; |
vinbel93 | 7:bd9bc9fa66c7 | 48 | |
vinbel93 | 7:bd9bc9fa66c7 | 49 | bool inMainMenu = true; |
vinbel93 | 7:bd9bc9fa66c7 | 50 | |
vinbel93 | 7:bd9bc9fa66c7 | 51 | int menuCount = 0; |
vinbel93 | 7:bd9bc9fa66c7 | 52 | int itemCount = 0; |
vinbel93 | 7:bd9bc9fa66c7 | 53 | |
vinbel93 | 7:bd9bc9fa66c7 | 54 | static float findPeriod(float frequency, float vibrato) |
vinbel93 | 7:bd9bc9fa66c7 | 55 | { |
vinbel93 | 6:59b0b6c1b5bb | 56 | float freq = frequency * octaveMult; |
vinbel93 | 7:bd9bc9fa66c7 | 57 | if (vibrato != 0) { |
vinbel93 | 7:bd9bc9fa66c7 | 58 | if(vibrato < 0.5) { |
vinbel93 | 6:59b0b6c1b5bb | 59 | freq = freq + (freq * ( (0.5 - vibrato) * 2 * DEMI_TON)); |
vinbel93 | 6:59b0b6c1b5bb | 60 | } else { |
vinbel93 | 6:59b0b6c1b5bb | 61 | freq = freq - (freq * ( (vibrato - 0.5) * 2 * DEMI_TON)); |
vinbel93 | 6:59b0b6c1b5bb | 62 | } |
vinbel93 | 6:59b0b6c1b5bb | 63 | } |
vinbel93 | 7:bd9bc9fa66c7 | 64 | |
vinbel93 | 6:59b0b6c1b5bb | 65 | return 1.0/freq; |
vinbel93 | 6:59b0b6c1b5bb | 66 | } |
vinbel93 | 7:bd9bc9fa66c7 | 67 | |
vinbel93 | 8:120807be23b8 | 68 | void timer_Signal() |
vinbel93 | 7:bd9bc9fa66c7 | 69 | { |
vinbel93 | 7:bd9bc9fa66c7 | 70 | thread_menu->signal_set(0x2); |
vinbel93 | 7:bd9bc9fa66c7 | 71 | } |
vinbel93 | 7:bd9bc9fa66c7 | 72 | |
vinbel93 | 7:bd9bc9fa66c7 | 73 | void digitLect(void const *args) |
vinbel93 | 7:bd9bc9fa66c7 | 74 | { |
vinbel93 | 7:bd9bc9fa66c7 | 75 | while(true) |
vinbel93 | 7:bd9bc9fa66c7 | 76 | { |
vinbel93 | 7:bd9bc9fa66c7 | 77 | btn_b = button_back; |
vinbel93 | 7:bd9bc9fa66c7 | 78 | btn_e = button_enter; |
vinbel93 | 7:bd9bc9fa66c7 | 79 | btn_n = button_next; |
vinbel93 | 7:bd9bc9fa66c7 | 80 | } |
vinbel93 | 7:bd9bc9fa66c7 | 81 | } |
vinbel93 | 7:bd9bc9fa66c7 | 82 | |
jasmou | 0:3acd447c12c0 | 83 | static void receive_cb(const RemoteXBeeZB& remote, bool broadcast, const uint8_t *const data, uint16_t len) |
jasmou | 0:3acd447c12c0 | 84 | { |
jasmou | 0:3acd447c12c0 | 85 | const uint64_t remote_addr64 = remote.get_addr64(); |
vinbel93 | 7:bd9bc9fa66c7 | 86 | |
vinbel93 | 1:33b4a3b5cdb5 | 87 | capt_1 = (data[0] & 0b10000000); |
vinbel93 | 1:33b4a3b5cdb5 | 88 | capt_2 = (data[0] & 0b01000000); |
vinbel93 | 1:33b4a3b5cdb5 | 89 | capt_3 = (data[0] & 0b00100000); |
vinbel93 | 1:33b4a3b5cdb5 | 90 | capt_4 = (data[0] & 0b00010000); |
vinbel93 | 1:33b4a3b5cdb5 | 91 | capt_5 = (data[0] & 0b00001000); |
vinbel93 | 1:33b4a3b5cdb5 | 92 | capt_6 = (data[0] & 0b00000100); |
vinbel93 | 7:bd9bc9fa66c7 | 93 | |
vinbel93 | 6:59b0b6c1b5bb | 94 | GP2D12_value = data[1]; |
vinbel93 | 7:bd9bc9fa66c7 | 95 | |
vinbel93 | 7:bd9bc9fa66c7 | 96 | if(GP2D12_value < 0x50) { |
vinbel93 | 6:59b0b6c1b5bb | 97 | GP2D12_value = 0; |
vinbel93 | 7:bd9bc9fa66c7 | 98 | } else { |
vinbel93 | 6:59b0b6c1b5bb | 99 | GP2D12_value -= 0x50; |
vinbel93 | 6:59b0b6c1b5bb | 100 | } |
vinbel93 | 7:bd9bc9fa66c7 | 101 | |
vinbel93 | 6:59b0b6c1b5bb | 102 | float pourcentageGP2D12 = float(GP2D12_value) / float(0x70); |
vinbel93 | 7:bd9bc9fa66c7 | 103 | |
vinbel93 | 7:bd9bc9fa66c7 | 104 | if(pourcentageGP2D12 > 1) { |
vinbel93 | 6:59b0b6c1b5bb | 105 | pourcentageGP2D12 = 1; |
vinbel93 | 6:59b0b6c1b5bb | 106 | } |
vinbel93 | 7:bd9bc9fa66c7 | 107 | |
vinbel93 | 7:bd9bc9fa66c7 | 108 | if(!capt_1) { |
vinbel93 | 7:bd9bc9fa66c7 | 109 | speaker.period(findPeriod(DO, pourcentageGP2D12)); |
vinbel93 | 1:33b4a3b5cdb5 | 110 | |
vinbel93 | 7:bd9bc9fa66c7 | 111 | speaker = dutyCycle; |
vinbel93 | 6:59b0b6c1b5bb | 112 | lastCapt = 1; |
vinbel93 | 7:bd9bc9fa66c7 | 113 | } else if(!capt_2) { |
vinbel93 | 6:59b0b6c1b5bb | 114 | speaker.period(findPeriod(RE, pourcentageGP2D12)); |
vinbel93 | 7:bd9bc9fa66c7 | 115 | |
vinbel93 | 7:bd9bc9fa66c7 | 116 | speaker = dutyCycle; |
vinbel93 | 6:59b0b6c1b5bb | 117 | lastCapt = 2; |
vinbel93 | 7:bd9bc9fa66c7 | 118 | } else if(!capt_3) { |
vinbel93 | 6:59b0b6c1b5bb | 119 | speaker.period(findPeriod(MI, pourcentageGP2D12)); |
vinbel93 | 7:bd9bc9fa66c7 | 120 | |
vinbel93 | 7:bd9bc9fa66c7 | 121 | speaker = dutyCycle; |
vinbel93 | 6:59b0b6c1b5bb | 122 | lastCapt = 3; |
vinbel93 | 7:bd9bc9fa66c7 | 123 | } else if(!capt_4) { |
vinbel93 | 6:59b0b6c1b5bb | 124 | speaker.period(findPeriod(FA_SHARP, pourcentageGP2D12)); |
vinbel93 | 7:bd9bc9fa66c7 | 125 | |
vinbel93 | 7:bd9bc9fa66c7 | 126 | speaker = dutyCycle; |
vinbel93 | 6:59b0b6c1b5bb | 127 | lastCapt = 4; |
vinbel93 | 7:bd9bc9fa66c7 | 128 | } else if(!capt_5) { |
vinbel93 | 6:59b0b6c1b5bb | 129 | speaker.period(findPeriod(SOL_SHARP, pourcentageGP2D12)); |
vinbel93 | 7:bd9bc9fa66c7 | 130 | |
vinbel93 | 7:bd9bc9fa66c7 | 131 | speaker = dutyCycle; |
vinbel93 | 6:59b0b6c1b5bb | 132 | lastCapt = 5; |
vinbel93 | 7:bd9bc9fa66c7 | 133 | } else if(!capt_6) { |
vinbel93 | 6:59b0b6c1b5bb | 134 | speaker.period(findPeriod(LA_SHARP, pourcentageGP2D12)); |
vinbel93 | 7:bd9bc9fa66c7 | 135 | |
vinbel93 | 7:bd9bc9fa66c7 | 136 | speaker = dutyCycle; |
vinbel93 | 6:59b0b6c1b5bb | 137 | lastCapt = 6; |
vinbel93 | 4:714484401021 | 138 | } else { |
vinbel93 | 7:bd9bc9fa66c7 | 139 | speaker = 0.0f; |
vinbel93 | 7:bd9bc9fa66c7 | 140 | } |
vinbel93 | 7:bd9bc9fa66c7 | 141 | } |
vinbel93 | 7:bd9bc9fa66c7 | 142 | |
vinbel93 | 7:bd9bc9fa66c7 | 143 | void nextItem(int menuCount, int itemCount, bool inMainMenu) |
vinbel93 | 7:bd9bc9fa66c7 | 144 | { |
vinbel93 | 7:bd9bc9fa66c7 | 145 | lcd.cls(); |
vinbel93 | 7:bd9bc9fa66c7 | 146 | if(inMainMenu) { |
vinbel93 | 7:bd9bc9fa66c7 | 147 | lcd.printf(MainMenuText[menuCount]); |
vinbel93 | 7:bd9bc9fa66c7 | 148 | } else if(!inMainMenu && menuCount == 0) { |
vinbel93 | 7:bd9bc9fa66c7 | 149 | lcd.printf(VolumeMenuText[itemCount]); |
vinbel93 | 7:bd9bc9fa66c7 | 150 | } else if(!inMainMenu && menuCount == 1) { |
vinbel93 | 7:bd9bc9fa66c7 | 151 | lcd.printf(OctaveMenuText[itemCount]); |
vinbel93 | 7:bd9bc9fa66c7 | 152 | } else { |
vinbel93 | 7:bd9bc9fa66c7 | 153 | lcd.printf("nextItem ERROR."); |
vinbel93 | 4:714484401021 | 154 | } |
jasmou | 0:3acd447c12c0 | 155 | } |
vinbel93 | 2:a7820185e9a8 | 156 | |
vinbel93 | 7:bd9bc9fa66c7 | 157 | void enterMenu() |
vinbel93 | 1:33b4a3b5cdb5 | 158 | { |
vinbel93 | 7:bd9bc9fa66c7 | 159 | lcd.cls(); |
vinbel93 | 7:bd9bc9fa66c7 | 160 | nextItem(menuCount, itemCount, inMainMenu); |
vinbel93 | 7:bd9bc9fa66c7 | 161 | |
vinbel93 | 7:bd9bc9fa66c7 | 162 | if(menuCount == 0) { |
vinbel93 | 7:bd9bc9fa66c7 | 163 | switch (itemCount) { |
vinbel93 | 7:bd9bc9fa66c7 | 164 | case 0: |
vinbel93 | 7:bd9bc9fa66c7 | 165 | dutyCycle += 0.0001; |
vinbel93 | 7:bd9bc9fa66c7 | 166 | if (dutyCycle > 0.5) |
vinbel93 | 7:bd9bc9fa66c7 | 167 | { |
vinbel93 | 7:bd9bc9fa66c7 | 168 | dutyCycle = 0.5; |
vinbel93 | 7:bd9bc9fa66c7 | 169 | } |
vinbel93 | 7:bd9bc9fa66c7 | 170 | break; |
vinbel93 | 7:bd9bc9fa66c7 | 171 | case 1: |
vinbel93 | 7:bd9bc9fa66c7 | 172 | dutyCycle -= 0.0001; |
vinbel93 | 7:bd9bc9fa66c7 | 173 | if (dutyCycle < 0) |
vinbel93 | 7:bd9bc9fa66c7 | 174 | { |
vinbel93 | 7:bd9bc9fa66c7 | 175 | dutyCycle = 0; |
vinbel93 | 7:bd9bc9fa66c7 | 176 | } |
vinbel93 | 7:bd9bc9fa66c7 | 177 | break; |
vinbel93 | 7:bd9bc9fa66c7 | 178 | case 2: |
vinbel93 | 7:bd9bc9fa66c7 | 179 | dutyCycle += 0.001; |
vinbel93 | 7:bd9bc9fa66c7 | 180 | if (dutyCycle > 0.5) |
vinbel93 | 7:bd9bc9fa66c7 | 181 | { |
vinbel93 | 7:bd9bc9fa66c7 | 182 | dutyCycle = 0.5; |
vinbel93 | 7:bd9bc9fa66c7 | 183 | } |
vinbel93 | 7:bd9bc9fa66c7 | 184 | break; |
vinbel93 | 7:bd9bc9fa66c7 | 185 | case 3: |
vinbel93 | 7:bd9bc9fa66c7 | 186 | dutyCycle -= 0.001; |
vinbel93 | 7:bd9bc9fa66c7 | 187 | if (dutyCycle < 0) |
vinbel93 | 7:bd9bc9fa66c7 | 188 | { |
vinbel93 | 7:bd9bc9fa66c7 | 189 | dutyCycle = 0; |
vinbel93 | 7:bd9bc9fa66c7 | 190 | } |
vinbel93 | 7:bd9bc9fa66c7 | 191 | break; |
vinbel93 | 7:bd9bc9fa66c7 | 192 | default: |
vinbel93 | 7:bd9bc9fa66c7 | 193 | break; |
vinbel93 | 7:bd9bc9fa66c7 | 194 | } |
vinbel93 | 1:33b4a3b5cdb5 | 195 | } |
vinbel93 | 7:bd9bc9fa66c7 | 196 | else if(menuCount == 1) { |
vinbel93 | 7:bd9bc9fa66c7 | 197 | switch (itemCount) { |
vinbel93 | 7:bd9bc9fa66c7 | 198 | case 0: |
vinbel93 | 7:bd9bc9fa66c7 | 199 | octaveMult = 0.5; |
vinbel93 | 7:bd9bc9fa66c7 | 200 | break; |
vinbel93 | 7:bd9bc9fa66c7 | 201 | case 1: |
vinbel93 | 7:bd9bc9fa66c7 | 202 | octaveMult = 1.0; |
vinbel93 | 7:bd9bc9fa66c7 | 203 | break; |
vinbel93 | 7:bd9bc9fa66c7 | 204 | case 2: |
vinbel93 | 7:bd9bc9fa66c7 | 205 | octaveMult = 2.0; |
vinbel93 | 7:bd9bc9fa66c7 | 206 | break; |
vinbel93 | 7:bd9bc9fa66c7 | 207 | default: |
vinbel93 | 7:bd9bc9fa66c7 | 208 | break; |
vinbel93 | 7:bd9bc9fa66c7 | 209 | } |
vinbel93 | 4:714484401021 | 210 | } |
vinbel93 | 2:a7820185e9a8 | 211 | } |
vinbel93 | 2:a7820185e9a8 | 212 | |
vinbel93 | 7:bd9bc9fa66c7 | 213 | void backMenu() |
vinbel93 | 2:a7820185e9a8 | 214 | { |
vinbel93 | 7:bd9bc9fa66c7 | 215 | lcd.cls(); |
vinbel93 | 7:bd9bc9fa66c7 | 216 | nextItem(menuCount, itemCount, inMainMenu); |
vinbel93 | 7:bd9bc9fa66c7 | 217 | } |
vinbel93 | 2:a7820185e9a8 | 218 | |
vinbel93 | 7:bd9bc9fa66c7 | 219 | void processMenu(void const *args) |
vinbel93 | 7:bd9bc9fa66c7 | 220 | { |
vinbel93 | 7:bd9bc9fa66c7 | 221 | while(true) |
vinbel93 | 7:bd9bc9fa66c7 | 222 | { |
vinbel93 | 7:bd9bc9fa66c7 | 223 | Thread::signal_wait(0x2); |
vinbel93 | 7:bd9bc9fa66c7 | 224 | if(btn_n) { |
vinbel93 | 7:bd9bc9fa66c7 | 225 | if(menuCount != maxMenuCount - 1 && inMainMenu) { |
vinbel93 | 7:bd9bc9fa66c7 | 226 | menuCount++; |
vinbel93 | 7:bd9bc9fa66c7 | 227 | } |
vinbel93 | 7:bd9bc9fa66c7 | 228 | |
vinbel93 | 7:bd9bc9fa66c7 | 229 | else if(menuCount == maxMenuCount - 1 && inMainMenu) { |
vinbel93 | 7:bd9bc9fa66c7 | 230 | menuCount = 0; |
vinbel93 | 7:bd9bc9fa66c7 | 231 | } |
vinbel93 | 7:bd9bc9fa66c7 | 232 | |
vinbel93 | 7:bd9bc9fa66c7 | 233 | if(menuCount == 0 && !inMainMenu) { |
vinbel93 | 7:bd9bc9fa66c7 | 234 | if(itemCount != maxVolumeCount - 1) { |
vinbel93 | 7:bd9bc9fa66c7 | 235 | itemCount++; |
vinbel93 | 7:bd9bc9fa66c7 | 236 | } else { |
vinbel93 | 7:bd9bc9fa66c7 | 237 | itemCount = 0; |
vinbel93 | 7:bd9bc9fa66c7 | 238 | } |
vinbel93 | 7:bd9bc9fa66c7 | 239 | } |
vinbel93 | 7:bd9bc9fa66c7 | 240 | |
vinbel93 | 7:bd9bc9fa66c7 | 241 | if(menuCount == 1 && !inMainMenu) { |
vinbel93 | 7:bd9bc9fa66c7 | 242 | if(itemCount != maxOctaveCount - 1) { |
vinbel93 | 7:bd9bc9fa66c7 | 243 | itemCount++; |
vinbel93 | 7:bd9bc9fa66c7 | 244 | } else { |
vinbel93 | 7:bd9bc9fa66c7 | 245 | itemCount = 0; |
vinbel93 | 7:bd9bc9fa66c7 | 246 | } |
vinbel93 | 7:bd9bc9fa66c7 | 247 | } |
vinbel93 | 7:bd9bc9fa66c7 | 248 | nextItem(menuCount, itemCount, inMainMenu); |
vinbel93 | 7:bd9bc9fa66c7 | 249 | } |
vinbel93 | 7:bd9bc9fa66c7 | 250 | |
vinbel93 | 7:bd9bc9fa66c7 | 251 | if(btn_e) { |
vinbel93 | 7:bd9bc9fa66c7 | 252 | |
vinbel93 | 7:bd9bc9fa66c7 | 253 | inMainMenu = false; |
vinbel93 | 7:bd9bc9fa66c7 | 254 | enterMenu(); |
vinbel93 | 7:bd9bc9fa66c7 | 255 | |
vinbel93 | 7:bd9bc9fa66c7 | 256 | } |
vinbel93 | 7:bd9bc9fa66c7 | 257 | |
vinbel93 | 7:bd9bc9fa66c7 | 258 | if(btn_b) { |
vinbel93 | 7:bd9bc9fa66c7 | 259 | inMainMenu = true; |
vinbel93 | 7:bd9bc9fa66c7 | 260 | itemCount = 0; |
vinbel93 | 7:bd9bc9fa66c7 | 261 | backMenu(); |
vinbel93 | 7:bd9bc9fa66c7 | 262 | } |
vinbel93 | 4:714484401021 | 263 | } |
vinbel93 | 2:a7820185e9a8 | 264 | } |
vinbel93 | 7:bd9bc9fa66c7 | 265 | |
vinbel93 | 2:a7820185e9a8 | 266 | int main() |
vinbel93 | 7:bd9bc9fa66c7 | 267 | { |
vinbel93 | 7:bd9bc9fa66c7 | 268 | XBeeZB xbee = XBeeZB(p13, p14, NC, NC, NC, 9600); |
jasmou | 0:3acd447c12c0 | 269 | xbee.register_receive_cb(&receive_cb); |
jasmou | 0:3acd447c12c0 | 270 | RadioStatus const radioStatus = xbee.init(); |
vinbel93 | 7:bd9bc9fa66c7 | 271 | |
vinbel93 | 8:120807be23b8 | 272 | timer.attach_us(&timer_Signal, 100000); |
vinbel93 | 7:bd9bc9fa66c7 | 273 | thread_digital = new Thread(digitLect); |
vinbel93 | 7:bd9bc9fa66c7 | 274 | thread_menu = new Thread(processMenu); |
jasmou | 0:3acd447c12c0 | 275 | MBED_ASSERT(radioStatus == Success); |
vinbel93 | 7:bd9bc9fa66c7 | 276 | |
jasmou | 0:3acd447c12c0 | 277 | while (!xbee.is_joined()) { |
jasmou | 0:3acd447c12c0 | 278 | wait_ms(1000); |
jasmou | 0:3acd447c12c0 | 279 | } |
vinbel93 | 7:bd9bc9fa66c7 | 280 | |
vinbel93 | 7:bd9bc9fa66c7 | 281 | lcd.printf("Make a Selection:"); |
vinbel93 | 7:bd9bc9fa66c7 | 282 | |
jasmou | 0:3acd447c12c0 | 283 | while (true) { |
jasmou | 0:3acd447c12c0 | 284 | xbee.process_rx_frames(); |
vinbel93 | 7:bd9bc9fa66c7 | 285 | wait_ms(10); |
jasmou | 0:3acd447c12c0 | 286 | } |
jasmou | 0:3acd447c12c0 | 287 | } |