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.
Dependencies: mbed mbed-rtos TextLCD
main.cpp@2:b178e27d9f22, 2015-11-30 (annotated)
- Committer:
- shibulal
- Date:
- Mon Nov 30 02:22:22 2015 +0000
- Revision:
- 2:b178e27d9f22
- Parent:
- 1:e3a5388e46ab
- Child:
- 3:ac2e5aceb324
b
Who changed what in which revision?
| User | Revision | Line number | New contents of line | 
|---|---|---|---|
| shibulal | 0:2d6b43fc4625 | 1 | #include "mbed.h" | 
| shibulal | 1:e3a5388e46ab | 2 | #include "rtos.h" | 
| shibulal | 1:e3a5388e46ab | 3 | |
| shibulal | 2:b178e27d9f22 | 4 | InterruptIn A(p8); | 
| shibulal | 2:b178e27d9f22 | 5 | InterruptIn V(p9); | 
| shibulal | 2:b178e27d9f22 | 6 | DigitalOut Apace(p1); | 
| shibulal | 2:b178e27d9f22 | 7 | DigitalOut Vpace(p2); | 
| shibulal | 1:e3a5388e46ab | 8 | Serial pc(USBTX, USBRX); | 
| shibulal | 1:e3a5388e46ab | 9 | |
| shibulal | 1:e3a5388e46ab | 10 | |
| shibulal | 1:e3a5388e46ab | 11 | void PacemakerKeyboardInput(void const *args); | 
| shibulal | 1:e3a5388e46ab | 12 | void PacemakerModes(void const *args); | 
| shibulal | 2:b178e27d9f22 | 13 | void PacemakerReceive(void const *args); | 
| shibulal | 2:b178e27d9f22 | 14 | void PacemakerSend(void const *args); | 
| shibulal | 0:2d6b43fc4625 | 15 | |
| shibulal | 1:e3a5388e46ab | 16 | int modeSwitchTimeInterval = 5000; | 
| shibulal | 1:e3a5388e46ab | 17 | int flag=0; | 
| shibulal | 1:e3a5388e46ab | 18 | const int sleepModeURI = 1000; | 
| shibulal | 1:e3a5388e46ab | 19 | const int sleepModeLRI = 2000; | 
| shibulal | 1:e3a5388e46ab | 20 | const int normalModeURI = 600; | 
| shibulal | 1:e3a5388e46ab | 21 | const int normalModeLRI = 1500; | 
| shibulal | 1:e3a5388e46ab | 22 | const int sportsModeURI = 343; | 
| shibulal | 1:e3a5388e46ab | 23 | const int sportsModeLRI = 600; | 
| shibulal | 1:e3a5388e46ab | 24 | const int manualModeURI = 343; | 
| shibulal | 1:e3a5388e46ab | 25 | const int manualModeLRI = 2000; | 
| shibulal | 1:e3a5388e46ab | 26 | |
| shibulal | 1:e3a5388e46ab | 27 | int LRI = normalModeLRI; | 
| shibulal | 1:e3a5388e46ab | 28 | int URI = normalModeURI; | 
| shibulal | 1:e3a5388e46ab | 29 | Timer k; | 
| shibulal | 2:b178e27d9f22 | 30 | Timer p; | 
| shibulal | 2:b178e27d9f22 | 31 | Timer t_loc | 
| shibulal | 2:b178e27d9f22 | 32 | const int PVARP = 150; | 
| shibulal | 2:b178e27d9f22 | 33 | const int VRP = PVARP; | 
| shibulal | 2:b178e27d9f22 | 34 | const int AVI = 65; | 
| shibulal | 1:e3a5388e46ab | 35 | char mode; | 
| shibulal | 1:e3a5388e46ab | 36 | char manualPace; | 
| shibulal | 2:b178e27d9f22 | 37 | char AorV; | 
| shibulal | 2:b178e27d9f22 | 38 | char AorVsense; | 
| shibulal | 1:e3a5388e46ab | 39 | Thread Pmki(PacemakerKeyboardInput,(void *) 0); | 
| shibulal | 2:b178e27d9f22 | 40 | Thread Pmm(PacemakerModes,(void *) 0); | 
| shibulal | 2:b178e27d9f22 | 41 | Thread Pmr (PacemakerReceive, (void *) 0); | 
| shibulal | 2:b178e27d9f22 | 42 | Thread Pmr (PacemakerSend, (void *) 0); | 
| shibulal | 0:2d6b43fc4625 | 43 | |
| shibulal | 1:e3a5388e46ab | 44 | void PacemakerKeyboardInput(void const *args){ | 
| shibulal | 1:e3a5388e46ab | 45 | k.start(); | 
| shibulal | 1:e3a5388e46ab | 46 | char input; | 
| shibulal | 1:e3a5388e46ab | 47 | while(true){ | 
| shibulal | 1:e3a5388e46ab | 48 | input=pc.getc(); | 
| shibulal | 1:e3a5388e46ab | 49 | if (k.read()>=modeSwitchTimeInterval && flag==0){ | 
| shibulal | 1:e3a5388e46ab | 50 | if (input=='F'){ | 
| shibulal | 1:e3a5388e46ab | 51 | mode='F'; | 
| shibulal | 1:e3a5388e46ab | 52 | Pmm.signal_set(0x1); | 
| shibulal | 1:e3a5388e46ab | 53 | Thread::signal_wait(0x1); | 
| shibulal | 1:e3a5388e46ab | 54 | } | 
| shibulal | 1:e3a5388e46ab | 55 | else if (input=='S'){ | 
| shibulal | 1:e3a5388e46ab | 56 | mode='S'; | 
| shibulal | 1:e3a5388e46ab | 57 | Pmm.signal_set(0x1); | 
| shibulal | 1:e3a5388e46ab | 58 | Thread::signal_wait(0x1); | 
| shibulal | 1:e3a5388e46ab | 59 | } | 
| shibulal | 1:e3a5388e46ab | 60 | else if (input=='N'){ | 
| shibulal | 1:e3a5388e46ab | 61 | mode='N'; | 
| shibulal | 1:e3a5388e46ab | 62 | Pmm.signal_set(0x1); | 
| shibulal | 1:e3a5388e46ab | 63 | Thread::signal_wait(0x1); | 
| shibulal | 1:e3a5388e46ab | 64 | } | 
| shibulal | 1:e3a5388e46ab | 65 | else if (input=='O'){ | 
| shibulal | 1:e3a5388e46ab | 66 | mode='O'; | 
| shibulal | 1:e3a5388e46ab | 67 | Pmm.signal_set(0x1); | 
| shibulal | 1:e3a5388e46ab | 68 | Thread::signal_wait(0x1); | 
| shibulal | 1:e3a5388e46ab | 69 | } | 
| shibulal | 1:e3a5388e46ab | 70 | else if (input=='M'){ | 
| shibulal | 1:e3a5388e46ab | 71 | mode='M'; | 
| shibulal | 1:e3a5388e46ab | 72 | Pmm.signal_set(0x1); | 
| shibulal | 1:e3a5388e46ab | 73 | Thread::signal_wait(0x1); | 
| shibulal | 1:e3a5388e46ab | 74 | } | 
| shibulal | 1:e3a5388e46ab | 75 | else if (input=='A'){ | 
| shibulal | 1:e3a5388e46ab | 76 | if (mode=='M') | 
| shibulal | 1:e3a5388e46ab | 77 | manualPace='A'; | 
| shibulal | 1:e3a5388e46ab | 78 | Pmm.signal_set(0x1); | 
| shibulal | 1:e3a5388e46ab | 79 | Thread::signal_wait(0x1); | 
| shibulal | 1:e3a5388e46ab | 80 | } | 
| shibulal | 1:e3a5388e46ab | 81 | } | 
| shibulal | 1:e3a5388e46ab | 82 | else if (input=='V'){ | 
| shibulal | 1:e3a5388e46ab | 83 | if (mode=='M'){ | 
| shibulal | 2:b178e27d9f22 | 84 | |
| shibulal | 1:e3a5388e46ab | 85 | manualPace='V'; | 
| shibulal | 1:e3a5388e46ab | 86 | Pmm.signal_set(0x1); | 
| shibulal | 1:e3a5388e46ab | 87 | Thread::signal_wait(0x1); | 
| shibulal | 1:e3a5388e46ab | 88 | } | 
| shibulal | 1:e3a5388e46ab | 89 | } | 
| shibulal | 1:e3a5388e46ab | 90 | } | 
| shibulal | 1:e3a5388e46ab | 91 | } | 
| shibulal | 2:b178e27d9f22 | 92 | |
| shibulal | 1:e3a5388e46ab | 93 | |
| shibulal | 1:e3a5388e46ab | 94 | |
| shibulal | 1:e3a5388e46ab | 95 | void PacemakerModes(void const *args){ | 
| shibulal | 1:e3a5388e46ab | 96 | while(1){ | 
| shibulal | 1:e3a5388e46ab | 97 | Thread::signal_wait(0x1); | 
| shibulal | 1:e3a5388e46ab | 98 | if (mode=='F'){ | 
| shibulal | 1:e3a5388e46ab | 99 | LRI=sportsModeLRI; | 
| shibulal | 1:e3a5388e46ab | 100 | URI=sportsModeURI; | 
| shibulal | 2:b178e27d9f22 | 101 | Pmki.signal_set(0x1); | 
| shibulal | 1:e3a5388e46ab | 102 | } | 
| shibulal | 1:e3a5388e46ab | 103 | else if (mode=='S'){ | 
| shibulal | 1:e3a5388e46ab | 104 | LRI=sleepModeLRI; | 
| shibulal | 1:e3a5388e46ab | 105 | URI=sleepModeURI; | 
| shibulal | 2:b178e27d9f22 | 106 | Pmki.signal_set(0x1); | 
| shibulal | 1:e3a5388e46ab | 107 | } | 
| shibulal | 1:e3a5388e46ab | 108 | else if (mode=='N'){ | 
| shibulal | 1:e3a5388e46ab | 109 | LRI=normalModeLRI; | 
| shibulal | 1:e3a5388e46ab | 110 | URI=normalModeURI; | 
| shibulal | 2:b178e27d9f22 | 111 | Pmki.signal_set(0x1); | 
| shibulal | 1:e3a5388e46ab | 112 | } | 
| shibulal | 1:e3a5388e46ab | 113 | else if (mode=='O'){ | 
| shibulal | 1:e3a5388e46ab | 114 | //not sure what to do here | 
| shibulal | 2:b178e27d9f22 | 115 | Pmki.signal_set(0x1); | 
| shibulal | 1:e3a5388e46ab | 116 | } | 
| shibulal | 1:e3a5388e46ab | 117 | else if (mode=='M'){ | 
| shibulal | 1:e3a5388e46ab | 118 | LRI=manualModeLRI; | 
| shibulal | 1:e3a5388e46ab | 119 | URI=manualModeURI; | 
| shibulal | 2:b178e27d9f22 | 120 | Pmki.signal_set(0x1); | 
| shibulal | 1:e3a5388e46ab | 121 | while(1){ | 
| shibulal | 1:e3a5388e46ab | 122 | Thread::signal_wait(0x1); | 
| shibulal | 1:e3a5388e46ab | 123 | if (mode=='M'){ | 
| shibulal | 1:e3a5388e46ab | 124 | if (manualPace=='A'){ | 
| shibulal | 2:b178e27d9f22 | 125 | Pms.signal_set(0x01); | 
| shibulal | 2:b178e27d9f22 | 126 | AorVsense='Am' | 
| shibulal | 2:b178e27d9f22 | 127 | manualPace=0; | 
| shibulal | 1:e3a5388e46ab | 128 | } | 
| shibulal | 1:e3a5388e46ab | 129 | else if (manualPace=='V'){ | 
| shibulal | 2:b178e27d9f22 | 130 | Pms.signal_set(0x01); | 
| shibulal | 2:b178e27d9f22 | 131 | AorVsense='Vm' | 
| shibulal | 2:b178e27d9f22 | 132 | manualPace=0; | 
| shibulal | 1:e3a5388e46ab | 133 | } | 
| shibulal | 1:e3a5388e46ab | 134 | } | 
| shibulal | 1:e3a5388e46ab | 135 | else { | 
| shibulal | 2:b178e27d9f22 | 136 | Pmm.signal_set(0x1); | 
| shibulal | 2:b178e27d9f22 | 137 | Pmki.signal_set(0x1); | 
| shibulal | 2:b178e27d9f22 | 138 | break; | 
| shibulal | 2:b178e27d9f22 | 139 | } | 
| shibulal | 2:b178e27d9f22 | 140 | Pmki.signal_set(0x1); | 
| shibulal | 2:b178e27d9f22 | 141 | } | 
| shibulal | 2:b178e27d9f22 | 142 | } | 
| shibulal | 2:b178e27d9f22 | 143 | } | 
| shibulal | 2:b178e27d9f22 | 144 | } | 
| shibulal | 2:b178e27d9f22 | 145 | |
| shibulal | 2:b178e27d9f22 | 146 | void PacemakerSend(void const *args){ | 
| shibulal | 2:b178e27d9f22 | 147 | while(1){ | 
| shibulal | 2:b178e27d9f22 | 148 | Thread::signal_wait(0x1); | 
| shibulal | 2:b178e27d9f22 | 149 | if (AorVsense=='V'){ | 
| shibulal | 2:b178e27d9f22 | 150 | p.reset(); | 
| shibulal | 2:b178e27d9f22 | 151 | } | 
| shibulal | 2:b178e27d9f22 | 152 | else if (AorVsense=='A'||p.read()>=LRI-AVI){ | 
| shibulal | 2:b178e27d9f22 | 153 | p.reset(); | 
| shibulal | 2:b178e27d9f22 | 154 | flag=1; | 
| shibulal | 2:b178e27d9f22 | 155 | while(1){ | 
| shibulal | 2:b178e27d9f22 | 156 | Thread::signal_wait(0x1); | 
| shibulal | 2:b178e27d9f22 | 157 | if (AorVsense=='A'){ | 
| shibulal | 2:b178e27d9f22 | 158 | while(1){ | 
| shibulal | 2:b178e27d9f22 | 159 | if (p<=LRI){ | 
| shibulal | 2:b178e27d9f22 | 160 | flag=0; | 
| shibulal | 2:b178e27d9f22 | 161 | break; | 
| shibulal | 2:b178e27d9f22 | 162 | } | 
| shibulal | 2:b178e27d9f22 | 163 | } | 
| shibulal | 2:b178e27d9f22 | 164 | else if (AorVsense=='V'){ | 
| shibulal | 2:b178e27d9f22 | 165 | p.reset(); | 
| shibulal | 2:b178e27d9f22 | 166 | flag=0; | 
| shibulal | 2:b178e27d9f22 | 167 | while(1){ | 
| shibulal | 2:b178e27d9f22 | 168 | if (p<=LRI-AVI){ | 
| shibulal | 2:b178e27d9f22 | 169 | break; | 
| shibulal | 2:b178e27d9f22 | 170 | } | 
| shibulal | 2:b178e27d9f22 | 171 | } | 
| shibulal | 2:b178e27d9f22 | 172 | else if (AorVsense=='Vm'){ | 
| shibulal | 2:b178e27d9f22 | 173 | flag=0; | 
| shibulal | 2:b178e27d9f22 | 174 | p.reset(); | 
| shibulal | 2:b178e27d9f22 | 175 | Vpace=1; | 
| shibulal | 2:b178e27d9f22 | 176 | wait(0.1) | 
| shibulal | 2:b178e27d9f22 | 177 | Vpace(0.1) | 
| shibulal | 2:b178e27d9f22 | 178 | while(1){ | 
| shibulal | 2:b178e27d9f22 | 179 | if (p<=LRI-AVI){ | 
| shibulal | 2:b178e27d9f22 | 180 | break; | 
| shibulal | 2:b178e27d9f22 | 181 | } | 
| shibulal | 2:b178e27d9f22 | 182 | } | 
| shibulal | 2:b178e27d9f22 | 183 | } | 
| shibulal | 2:b178e27d9f22 | 184 | else if(p.read()==LRI) { | 
| shibulal | 2:b178e27d9f22 | 185 | Vpace=1; | 
| shibulal | 2:b178e27d9f22 | 186 | wait(0.1) | 
| shibulal | 2:b178e27d9f22 | 187 | Vpace=0; | 
| shibulal | 2:b178e27d9f22 | 188 | p.reset(); | 
| shibulal | 2:b178e27d9f22 | 189 | flag=0; | 
| shibulal | 2:b178e27d9f22 | 190 | while(1){ | 
| shibulal | 2:b178e27d9f22 | 191 | if (p<=LRI-AVI){ | 
| shibulal | 2:b178e27d9f22 | 192 | break; | 
| shibulal | 2:b178e27d9f22 | 193 | } | 
| shibulal | 2:b178e27d9f22 | 194 | } | 
| shibulal | 2:b178e27d9f22 | 195 | } | 
| shibulal | 2:b178e27d9f22 | 196 | } | 
| shibulal | 2:b178e27d9f22 | 197 | else if (AorVsense=='Vm'){ | 
| shibulal | 2:b178e27d9f22 | 198 | p.reset(); | 
| shibulal | 2:b178e27d9f22 | 199 | Vpace=1; | 
| shibulal | 2:b178e27d9f22 | 200 | wait(0.1) | 
| shibulal | 2:b178e27d9f22 | 201 | Vpace(0.1) | 
| shibulal | 2:b178e27d9f22 | 202 | while(1){ | 
| shibulal | 2:b178e27d9f22 | 203 | if (p<=LRI-AVI){ | 
| shibulal | 1:e3a5388e46ab | 204 | break; | 
| shibulal | 1:e3a5388e46ab | 205 | } | 
| shibulal | 2:b178e27d9f22 | 206 | } | 
| shibulal | 2:b178e27d9f22 | 207 | } | 
| shibulal | 2:b178e27d9f22 | 208 | else if (AorVsense=='Am'){ | 
| shibulal | 2:b178e27d9f22 | 209 | p.reset(); | 
| shibulal | 2:b178e27d9f22 | 210 | Apace=1; | 
| shibulal | 2:b178e27d9f22 | 211 | wait(0.1) | 
| shibulal | 2:b178e27d9f22 | 212 | Apace(0.1) | 
| shibulal | 2:b178e27d9f22 | 213 | flag=1; | 
| shibulal | 2:b178e27d9f22 | 214 | while(1){ | 
| shibulal | 2:b178e27d9f22 | 215 | Thread::signal_wait(0x1); | 
| shibulal | 2:b178e27d9f22 | 216 | if (AorVsense=='A'){ | 
| shibulal | 2:b178e27d9f22 | 217 | while(1){ | 
| shibulal | 2:b178e27d9f22 | 218 | if (p<=LRI){ | 
| shibulal | 2:b178e27d9f22 | 219 | flag=0; | 
| shibulal | 2:b178e27d9f22 | 220 | break; | 
| shibulal | 2:b178e27d9f22 | 221 | } | 
| shibulal | 2:b178e27d9f22 | 222 | } | 
| shibulal | 2:b178e27d9f22 | 223 | else if (AorVsense=='V'){ | 
| shibulal | 2:b178e27d9f22 | 224 | p.reset(); | 
| shibulal | 2:b178e27d9f22 | 225 | flag=0; | 
| shibulal | 2:b178e27d9f22 | 226 | while(1){ | 
| shibulal | 2:b178e27d9f22 | 227 | if (p<=LRI-AVI){ | 
| shibulal | 2:b178e27d9f22 | 228 | break; | 
| shibulal | 2:b178e27d9f22 | 229 | } | 
| shibulal | 2:b178e27d9f22 | 230 | } | 
| shibulal | 2:b178e27d9f22 | 231 | else if (AorVsense=='Vm'){ | 
| shibulal | 2:b178e27d9f22 | 232 | flag=0; | 
| shibulal | 2:b178e27d9f22 | 233 | p.reset(); | 
| shibulal | 2:b178e27d9f22 | 234 | Vpace=1; | 
| shibulal | 2:b178e27d9f22 | 235 | wait(0.1) | 
| shibulal | 2:b178e27d9f22 | 236 | Vpace(0.1) | 
| shibulal | 2:b178e27d9f22 | 237 | while(1){ | 
| shibulal | 2:b178e27d9f22 | 238 | if (p<=LRI-AVI){ | 
| shibulal | 2:b178e27d9f22 | 239 | break; | 
| shibulal | 2:b178e27d9f22 | 240 | } | 
| shibulal | 1:e3a5388e46ab | 241 | } | 
| shibulal | 2:b178e27d9f22 | 242 | } | 
| shibulal | 2:b178e27d9f22 | 243 | else if(p.read()==LRI) { | 
| shibulal | 2:b178e27d9f22 | 244 | Vpace=1; | 
| shibulal | 2:b178e27d9f22 | 245 | wait(0.1) | 
| shibulal | 2:b178e27d9f22 | 246 | Vpace=0; | 
| shibulal | 2:b178e27d9f22 | 247 | p.reset(); | 
| shibulal | 2:b178e27d9f22 | 248 | flag=0; | 
| shibulal | 2:b178e27d9f22 | 249 | while(1){ | 
| shibulal | 2:b178e27d9f22 | 250 | if (p<=LRI-AVI){ | 
| shibulal | 2:b178e27d9f22 | 251 | break; | 
| shibulal | 2:b178e27d9f22 | 252 | } | 
| shibulal | 2:b178e27d9f22 | 253 | } | 
| shibulal | 2:b178e27d9f22 | 254 | } | 
| shibulal | 2:b178e27d9f22 | 255 | |
| shibulal | 2:b178e27d9f22 | 256 | } | 
| shibulal | 2:b178e27d9f22 | 257 | } | 
| shibulal | 2:b178e27d9f22 | 258 | |
| shibulal | 2:b178e27d9f22 | 259 | } | 
| shibulal | 2:b178e27d9f22 | 260 | } | 
| shibulal | 2:b178e27d9f22 | 261 | } | 
| shibulal | 2:b178e27d9f22 | 262 | void PacemakerReceive(void const *args){ | 
| shibulal | 2:b178e27d9f22 | 263 | while(1){ | 
| shibulal | 2:b178e27d9f22 | 264 | Thread::signal_wait(0x1); | 
| shibulal | 2:b178e27d9f22 | 265 | if (AorV=='A' && p.read()<PVARP){ | 
| shibulal | 2:b178e27d9f22 | 266 | |
| shibulal | 2:b178e27d9f22 | 267 | } | 
| shibulal | 2:b178e27d9f22 | 268 | else if (AorV=='V' && p.read()<VRP){ | 
| shibulal | 2:b178e27d9f22 | 269 | } | 
| shibulal | 2:b178e27d9f22 | 270 | else if (AorV=='A' && p.read()>=PVARP){ | 
| shibulal | 2:b178e27d9f22 | 271 | Pms.signal_set(0x01); | 
| shibulal | 2:b178e27d9f22 | 272 | AorVsense='A' | 
| shibulal | 2:b178e27d9f22 | 273 | t_loc.reset | 
| shibulal | 2:b178e27d9f22 | 274 | while(1){ | 
| shibulal | 2:b178e27d9f22 | 275 | Thread::signal_wait(0x1); | 
| shibulal | 2:b178e27d9f22 | 276 | if(AorV=='V'){ | 
| shibulal | 2:b178e27d9f22 | 277 | break; | 
| shibulal | 2:b178e27d9f22 | 278 | } | 
| shibulal | 2:b178e27d9f22 | 279 | } | 
| shibulal | 2:b178e27d9f22 | 280 | while(1){ | 
| shibulal | 2:b178e27d9f22 | 281 | if (t_loc>AVI && p>URI){ | 
| shibulal | 2:b178e27d9f22 | 282 | Pms.signal_set(0x01); | 
| shibulal | 2:b178e27d9f22 | 283 | AorVsense='V'; | 
| shibulal | 2:b178e27d9f22 | 284 | p=0; | 
| shibulal | 2:b178e27d9f22 | 285 | t_loc=0; | 
| shibulal | 2:b178e27d9f22 | 286 | break; | 
| shibulal | 2:b178e27d9f22 | 287 | } | 
| shibulal | 2:b178e27d9f22 | 288 | } | 
| shibulal | 2:b178e27d9f22 | 289 | } | 
| shibulal | 2:b178e27d9f22 | 290 | else if (AorV=='V' && p.read()>=VRP){ | 
| shibulal | 2:b178e27d9f22 | 291 | while(1){ | 
| shibulal | 2:b178e27d9f22 | 292 | if ((t_loc>=AVI && p<=URI) || (t_loc<=AVI && p<=URI) ||(t_loc<=AVI && p>=URI)){ | 
| shibulal | 2:b178e27d9f22 | 293 | break; | 
| shibulal | 2:b178e27d9f22 | 294 | } | 
| shibulal | 2:b178e27d9f22 | 295 | } | 
| shibulal | 2:b178e27d9f22 | 296 | while(1){ | 
| shibulal | 2:b178e27d9f22 | 297 | Thread::signal_wait(0x1); | 
| shibulal | 2:b178e27d9f22 | 298 | if(AorV=='V'){ | 
| shibulal | 2:b178e27d9f22 | 299 | break; | 
| shibulal | 2:b178e27d9f22 | 300 | } | 
| shibulal | 2:b178e27d9f22 | 301 | } | 
| shibulal | 2:b178e27d9f22 | 302 | while(1){ | 
| shibulal | 2:b178e27d9f22 | 303 | if (t_loc>AVI && p>URI){ | 
| shibulal | 2:b178e27d9f22 | 304 | Pms.signal_set(0x01); | 
| shibulal | 2:b178e27d9f22 | 305 | AorVsense='V'; | 
| shibulal | 2:b178e27d9f22 | 306 | p=0; | 
| shibulal | 2:b178e27d9f22 | 307 | t_loc=0; | 
| shibulal | 2:b178e27d9f22 | 308 | break; | 
| shibulal | 2:b178e27d9f22 | 309 | } | 
| shibulal | 2:b178e27d9f22 | 310 | } | 
| shibulal | 2:b178e27d9f22 | 311 | |
| shibulal | 1:e3a5388e46ab | 312 | } | 
| shibulal | 1:e3a5388e46ab | 313 | |
| shibulal | 1:e3a5388e46ab | 314 | |
| shibulal | 2:b178e27d9f22 | 315 | |
| shibulal | 2:b178e27d9f22 | 316 | |
| shibulal | 2:b178e27d9f22 | 317 | } | 
| shibulal | 1:e3a5388e46ab | 318 | |
| shibulal | 1:e3a5388e46ab | 319 | int main(){ | 
| shibulal | 2:b178e27d9f22 | 320 | A.mode(PullDown); | 
| shibulal | 2:b178e27d9f22 | 321 | A.rise(Asig); | 
| shibulal | 2:b178e27d9f22 | 322 | V.mode(PullDown); | 
| shibulal | 2:b178e27d9f22 | 323 | V.rise(Vsig); | 
| shibulal | 1:e3a5388e46ab | 324 | |
| shibulal | 1:e3a5388e46ab | 325 | while(1); | 
| shibulal | 0:2d6b43fc4625 | 326 | } | 
| shibulal | 2:b178e27d9f22 | 327 | |
| shibulal | 2:b178e27d9f22 | 328 | |
| shibulal | 2:b178e27d9f22 | 329 | void Asig() { | 
| shibulal | 2:b178e27d9f22 | 330 | Pmr.signal_set(0x1); | 
| shibulal | 2:b178e27d9f22 | 331 | AorV='A'; | 
| shibulal | 2:b178e27d9f22 | 332 | |
| shibulal | 2:b178e27d9f22 | 333 | } | 
| shibulal | 2:b178e27d9f22 | 334 | void Vsig() { | 
| shibulal | 2:b178e27d9f22 | 335 | Pmr.signal_set(0x1); | 
| shibulal | 2:b178e27d9f22 | 336 | AorV='V'; | 
| shibulal | 2:b178e27d9f22 | 337 | |
| shibulal | 2:b178e27d9f22 | 338 | } |