Rotork Research Team / Mbed 2 deprecated TFM_Encoder

Dependencies:   mbed QEI

Committer:
simontruelove
Date:
Thu Nov 15 08:43:32 2018 +0000
Revision:
5:4e5c644d5cc3
Parent:
4:3aedc9246ae4
Child:
6:f7028034aabb
Tidied up a bit

Who changed what in which revision?

UserRevisionLine numberNew contents of line
simontruelove 0:634dd505dace 1 #include "mbed.h"
simontruelove 3:4249dbdf7ed3 2 #include "QEI.h"
simontruelove 3:4249dbdf7ed3 3
simontruelove 3:4249dbdf7ed3 4 void Initialisation (void); //These voids are written after the main. They must be listed here too (functional prototypes).
simontruelove 1:0191658b6ff4 5 void StepCW(void);
simontruelove 1:0191658b6ff4 6 void Ph1(void);
simontruelove 3:4249dbdf7ed3 7 void Ph12 (void);
simontruelove 1:0191658b6ff4 8 void Ph2(void);
simontruelove 3:4249dbdf7ed3 9 void Ph23 (void);
simontruelove 1:0191658b6ff4 10 void Ph3(void);
simontruelove 3:4249dbdf7ed3 11 void Ph34 (void);
simontruelove 1:0191658b6ff4 12 void Ph4(void);
simontruelove 3:4249dbdf7ed3 13 void Ph41 (void);
simontruelove 4:3aedc9246ae4 14 void GetChar (void);
simontruelove 5:4e5c644d5cc3 15 void RPM (void);
simontruelove 1:0191658b6ff4 16
simontruelove 1:0191658b6ff4 17 Serial pc(USBTX, USBRX); // tx, rx - set up the Terraterm input from mbed
simontruelove 1:0191658b6ff4 18
simontruelove 3:4249dbdf7ed3 19 QEI wheel(p5, p6, p8, 800, QEI::X4_ENCODING); //code for quadrature encoder see QEI.h
simontruelove 3:4249dbdf7ed3 20
simontruelove 3:4249dbdf7ed3 21 Timer t;
simontruelove 3:4249dbdf7ed3 22
simontruelove 1:0191658b6ff4 23 DigitalOut Phase1 (p21); //Pin and LED set up
simontruelove 1:0191658b6ff4 24 DigitalOut Phase2 (p22);
simontruelove 1:0191658b6ff4 25 DigitalOut Phase3 (p23);
simontruelove 1:0191658b6ff4 26 DigitalOut Phase4 (p24);
simontruelove 1:0191658b6ff4 27
simontruelove 2:3f95c82c26bb 28 DigitalIn Button1 (p11);
simontruelove 4:3aedc9246ae4 29 DigitalIn Button2 (p12);
simontruelove 2:3f95c82c26bb 30
simontruelove 2:3f95c82c26bb 31 DigitalOut led1(LED1);
simontruelove 2:3f95c82c26bb 32 DigitalOut led2(LED2);
simontruelove 2:3f95c82c26bb 33 DigitalOut led3(LED3);
simontruelove 2:3f95c82c26bb 34 DigitalOut led4(LED4);
simontruelove 1:0191658b6ff4 35
simontruelove 3:4249dbdf7ed3 36 int StateA = 0;
simontruelove 3:4249dbdf7ed3 37 int StateB = 0;
simontruelove 3:4249dbdf7ed3 38 int TimePerClick = 0;
simontruelove 3:4249dbdf7ed3 39 int TimePerRev = 0;
simontruelove 3:4249dbdf7ed3 40 int RPS = 0;
simontruelove 5:4e5c644d5cc3 41 int rpm = 0;
simontruelove 1:0191658b6ff4 42
simontruelove 4:3aedc9246ae4 43 char c;
simontruelove 4:3aedc9246ae4 44
simontruelove 5:4e5c644d5cc3 45 float x=0.05; //x=time of square wave when 1 phase energised,
simontruelove 5:4e5c644d5cc3 46 float y=0.02; //y=time of square wave when 2 phases energised
simontruelove 1:0191658b6ff4 47
simontruelove 1:0191658b6ff4 48 int main(void)
simontruelove 3:4249dbdf7ed3 49 {
simontruelove 1:0191658b6ff4 50 pc.baud(230400); //Set fastest baud rate
simontruelove 3:4249dbdf7ed3 51 StepCW();
simontruelove 3:4249dbdf7ed3 52 Initialisation();
simontruelove 3:4249dbdf7ed3 53 wait(0.1);
simontruelove 3:4249dbdf7ed3 54 t.start();
simontruelove 4:3aedc9246ae4 55
simontruelove 5:4e5c644d5cc3 56 while(wheel.getRevolutions()==0)
simontruelove 3:4249dbdf7ed3 57 {
simontruelove 5:4e5c644d5cc3 58 switch(StateA)
simontruelove 3:4249dbdf7ed3 59 {
simontruelove 5:4e5c644d5cc3 60 case 0:Ph1();pc.printf("Ph1= %i\n\r", wheel.getPulses());break;
simontruelove 5:4e5c644d5cc3 61 case 1:Ph12();pc.printf("Ph12= %i\n\r", wheel.getPulses());break;
simontruelove 5:4e5c644d5cc3 62 case 2:Ph2();pc.printf("Ph2= %i\n\r", wheel.getPulses());break;
simontruelove 5:4e5c644d5cc3 63 case 3:Ph23();pc.printf("Ph23= %i\n\r", wheel.getPulses());break;
simontruelove 5:4e5c644d5cc3 64 case 4:Ph3();pc.printf("Ph3= %i\n\r", wheel.getPulses());break;
simontruelove 5:4e5c644d5cc3 65 case 5:Ph34();pc.printf("Ph34= %i\n\r", wheel.getPulses());break;
simontruelove 5:4e5c644d5cc3 66 case 6:Ph4();pc.printf("Ph4= %i\n\r", wheel.getPulses());break;
simontruelove 5:4e5c644d5cc3 67 case 7:Ph41();pc.printf("Ph41= %i\n\r", wheel.getPulses());break;
simontruelove 5:4e5c644d5cc3 68 default:break;
simontruelove 3:4249dbdf7ed3 69 }
simontruelove 3:4249dbdf7ed3 70
simontruelove 3:4249dbdf7ed3 71 if(wheel.getYay()==1)
simontruelove 3:4249dbdf7ed3 72 {
simontruelove 5:4e5c644d5cc3 73 StateA++;
simontruelove 5:4e5c644d5cc3 74 wheel.ResetYay();
simontruelove 5:4e5c644d5cc3 75 if (StateA>7)
simontruelove 3:4249dbdf7ed3 76 {
simontruelove 5:4e5c644d5cc3 77 StateA=0;
simontruelove 3:4249dbdf7ed3 78 }
simontruelove 3:4249dbdf7ed3 79 }
simontruelove 5:4e5c644d5cc3 80 }
simontruelove 3:4249dbdf7ed3 81
simontruelove 5:4e5c644d5cc3 82 while(1)
simontruelove 5:4e5c644d5cc3 83 {
simontruelove 4:3aedc9246ae4 84 while((led1 == 0) && (led2 == 0))
simontruelove 4:3aedc9246ae4 85 {
simontruelove 4:3aedc9246ae4 86 GetChar();
simontruelove 5:4e5c644d5cc3 87 StateB = (wheel.getPulses())%16;
simontruelove 5:4e5c644d5cc3 88 Phase1 = 0;
simontruelove 5:4e5c644d5cc3 89 Phase2 = 0;
simontruelove 5:4e5c644d5cc3 90 Phase3 = 0;
simontruelove 5:4e5c644d5cc3 91 Phase4 = 0;
simontruelove 5:4e5c644d5cc3 92 pc.printf("StateA= %i\r", StateA);
simontruelove 5:4e5c644d5cc3 93 //pc.printf("0 StateB= %i, Pulses= %i, Revs= %i\r", StateB,wheel.getPulses(),wheel.getRevolutions());
simontruelove 4:3aedc9246ae4 94 }
simontruelove 4:3aedc9246ae4 95 while((wheel.getRevolutions()>0) && (wheel.getPulses()>0) && (led1==1))
simontruelove 3:4249dbdf7ed3 96 {
simontruelove 4:3aedc9246ae4 97 GetChar();
simontruelove 4:3aedc9246ae4 98 StateB = (wheel.getPulses())%16;
simontruelove 5:4e5c644d5cc3 99 pc.printf("StateA= %i\r", StateA);
simontruelove 4:3aedc9246ae4 100 //pc.printf("1 StateB= %i, Pulses= %i, Revs= %i\r", StateB,wheel.getPulses(),wheel.getRevolutions());
simontruelove 4:3aedc9246ae4 101
simontruelove 4:3aedc9246ae4 102 switch(StateB)
simontruelove 4:3aedc9246ae4 103 {
simontruelove 5:4e5c644d5cc3 104 case 0:Ph3();break;
simontruelove 5:4e5c644d5cc3 105 case 1:Ph3();break;
simontruelove 5:4e5c644d5cc3 106 case 2:Ph34();break;
simontruelove 5:4e5c644d5cc3 107 case 3:Ph34();break;
simontruelove 5:4e5c644d5cc3 108 case 4:Ph4();break;
simontruelove 5:4e5c644d5cc3 109 case 5:Ph4();break;
simontruelove 5:4e5c644d5cc3 110 case 6:Ph41();break;
simontruelove 5:4e5c644d5cc3 111 case 7:Ph41();break;
simontruelove 5:4e5c644d5cc3 112 case 8:Ph1();break;
simontruelove 5:4e5c644d5cc3 113 case 9:Ph1();break;
simontruelove 5:4e5c644d5cc3 114 case 10:Ph12();break;
simontruelove 5:4e5c644d5cc3 115 case 11:Ph12();break;
simontruelove 5:4e5c644d5cc3 116 case 12:Ph2();break;
simontruelove 5:4e5c644d5cc3 117 case 13:Ph2();break;
simontruelove 5:4e5c644d5cc3 118 case 14:Ph23();break;
simontruelove 5:4e5c644d5cc3 119 case 15:Ph23();break;
simontruelove 5:4e5c644d5cc3 120 default:break;
simontruelove 4:3aedc9246ae4 121 }
simontruelove 4:3aedc9246ae4 122
simontruelove 4:3aedc9246ae4 123 if(wheel.getYay()==1)
simontruelove 4:3aedc9246ae4 124 {
simontruelove 5:4e5c644d5cc3 125 RPM();
simontruelove 4:3aedc9246ae4 126 }
simontruelove 4:3aedc9246ae4 127 }
simontruelove 4:3aedc9246ae4 128
simontruelove 4:3aedc9246ae4 129 while(wheel.getRevolutions()>0 && wheel.getPulses()<1 && (led1==1))
simontruelove 4:3aedc9246ae4 130 {
simontruelove 4:3aedc9246ae4 131 GetChar();
simontruelove 4:3aedc9246ae4 132 StateB = (800+wheel.getPulses())%16;
simontruelove 5:4e5c644d5cc3 133 pc.printf("StateA= %i\r", StateA);
simontruelove 4:3aedc9246ae4 134 //pc.printf("2 StateB= %i, Pulses= %i, Revs= %i\r", StateB,wheel.getPulses(),wheel.getRevolutions());
simontruelove 3:4249dbdf7ed3 135
simontruelove 3:4249dbdf7ed3 136 switch(StateB)
simontruelove 3:4249dbdf7ed3 137 {
simontruelove 5:4e5c644d5cc3 138 case 0:Ph3();break;
simontruelove 5:4e5c644d5cc3 139 case 1:Ph3();break;
simontruelove 5:4e5c644d5cc3 140 case 2:Ph34();break;
simontruelove 5:4e5c644d5cc3 141 case 3:Ph34();break;
simontruelove 5:4e5c644d5cc3 142 case 4:Ph4();break;
simontruelove 5:4e5c644d5cc3 143 case 5:Ph4();break;
simontruelove 5:4e5c644d5cc3 144 case 6:Ph41();break;
simontruelove 5:4e5c644d5cc3 145 case 7:Ph41();break;
simontruelove 5:4e5c644d5cc3 146 case 8:Ph1();break;
simontruelove 5:4e5c644d5cc3 147 case 9:Ph1();break;
simontruelove 5:4e5c644d5cc3 148 case 10:Ph12();break;
simontruelove 5:4e5c644d5cc3 149 case 11:Ph12();break;
simontruelove 5:4e5c644d5cc3 150 case 12:Ph2();break;
simontruelove 5:4e5c644d5cc3 151 case 13:Ph2();break;
simontruelove 5:4e5c644d5cc3 152 case 14:Ph23();break;
simontruelove 5:4e5c644d5cc3 153 case 15:Ph23();break;
simontruelove 5:4e5c644d5cc3 154 default:break;
simontruelove 3:4249dbdf7ed3 155 }
simontruelove 3:4249dbdf7ed3 156
simontruelove 5:4e5c644d5cc3 157 if(wheel.getYay()==1)
simontruelove 5:4e5c644d5cc3 158 {
simontruelove 5:4e5c644d5cc3 159 RPM();
simontruelove 5:4e5c644d5cc3 160 }
simontruelove 5:4e5c644d5cc3 161 }
simontruelove 5:4e5c644d5cc3 162 while((wheel.getRevolutions()>0) && (wheel.getPulses()>0) && (led2==1))
simontruelove 4:3aedc9246ae4 163 {
simontruelove 5:4e5c644d5cc3 164 GetChar();
simontruelove 5:4e5c644d5cc3 165 StateB = (800+wheel.getPulses())%16;
simontruelove 5:4e5c644d5cc3 166 pc.printf("StateA= %i\r", StateA);
simontruelove 5:4e5c644d5cc3 167 //pc.printf("StateA= %i\n\r", StateA);
simontruelove 5:4e5c644d5cc3 168 //pc.printf("3 StateB= %i, Pulses= %i, Revs= %i \r", StateB,wheel.getPulses(),wheel.getRevolutions());
simontruelove 5:4e5c644d5cc3 169 switch(StateB)
simontruelove 5:4e5c644d5cc3 170 {
simontruelove 5:4e5c644d5cc3 171 case 15:Ph34();break;
simontruelove 5:4e5c644d5cc3 172 case 14:Ph3();break;
simontruelove 5:4e5c644d5cc3 173 case 13:Ph3();break;
simontruelove 5:4e5c644d5cc3 174 case 12:Ph23();break;
simontruelove 5:4e5c644d5cc3 175 case 11:Ph23();break;
simontruelove 5:4e5c644d5cc3 176 case 10:Ph2();break;
simontruelove 5:4e5c644d5cc3 177 case 9:Ph2();break;
simontruelove 5:4e5c644d5cc3 178 case 8:Ph12();break;
simontruelove 5:4e5c644d5cc3 179 case 7:Ph12();break;
simontruelove 5:4e5c644d5cc3 180 case 6:Ph1();break;
simontruelove 5:4e5c644d5cc3 181 case 5:Ph1();break;
simontruelove 5:4e5c644d5cc3 182 case 4:Ph41();break;
simontruelove 5:4e5c644d5cc3 183 case 3:Ph41();break;
simontruelove 5:4e5c644d5cc3 184 case 2:Ph4();break;
simontruelove 5:4e5c644d5cc3 185 case 1:Ph4();break;
simontruelove 5:4e5c644d5cc3 186 case 0:Ph34();break;
simontruelove 5:4e5c644d5cc3 187 default:break;
simontruelove 5:4e5c644d5cc3 188 }
simontruelove 5:4e5c644d5cc3 189 if (StateB<0)
simontruelove 5:4e5c644d5cc3 190 {
simontruelove 5:4e5c644d5cc3 191 StateB = 800+wheel.getPulses();
simontruelove 5:4e5c644d5cc3 192 }
simontruelove 5:4e5c644d5cc3 193 if(wheel.getYay()==1)
simontruelove 5:4e5c644d5cc3 194 {
simontruelove 5:4e5c644d5cc3 195 RPM();
simontruelove 5:4e5c644d5cc3 196 }
simontruelove 3:4249dbdf7ed3 197 }
simontruelove 5:4e5c644d5cc3 198 while((wheel.getRevolutions()>0) && (wheel.getPulses()<1) && (led2==1))
simontruelove 5:4e5c644d5cc3 199 {
simontruelove 5:4e5c644d5cc3 200 GetChar();
simontruelove 5:4e5c644d5cc3 201 StateB = (800+wheel.getPulses())%16;
simontruelove 5:4e5c644d5cc3 202 pc.printf("StateA= %i\r", StateA);
simontruelove 5:4e5c644d5cc3 203 //pc.printf("4 StateB= %i, Pulses= %i, Revs= %i \r", StateB,wheel.getPulses(),wheel.getRevolutions());
simontruelove 5:4e5c644d5cc3 204 switch(StateB)
simontruelove 5:4e5c644d5cc3 205 {
simontruelove 5:4e5c644d5cc3 206 case 15:Ph34();break;
simontruelove 5:4e5c644d5cc3 207 case 14:Ph3();break;
simontruelove 5:4e5c644d5cc3 208 case 13:Ph3();break;
simontruelove 5:4e5c644d5cc3 209 case 12:Ph23();break;
simontruelove 5:4e5c644d5cc3 210 case 11:Ph23();break;
simontruelove 5:4e5c644d5cc3 211 case 10:Ph2();break;
simontruelove 5:4e5c644d5cc3 212 case 9:Ph2();break;
simontruelove 5:4e5c644d5cc3 213 case 8:Ph12();break;
simontruelove 5:4e5c644d5cc3 214 case 7:Ph12();break;
simontruelove 5:4e5c644d5cc3 215 case 6:Ph1();break;
simontruelove 5:4e5c644d5cc3 216 case 5:Ph1();break;
simontruelove 5:4e5c644d5cc3 217 case 4:Ph41();break;
simontruelove 5:4e5c644d5cc3 218 case 3:Ph41();break;
simontruelove 5:4e5c644d5cc3 219 case 2:Ph4();break;
simontruelove 5:4e5c644d5cc3 220 case 1:Ph4();break;
simontruelove 5:4e5c644d5cc3 221 case 0:Ph34();break;
simontruelove 5:4e5c644d5cc3 222 default:break;
simontruelove 5:4e5c644d5cc3 223 }
simontruelove 5:4e5c644d5cc3 224 if (StateB<0)
simontruelove 5:4e5c644d5cc3 225 {
simontruelove 5:4e5c644d5cc3 226 StateB = 800+wheel.getPulses();
simontruelove 5:4e5c644d5cc3 227 }
simontruelove 5:4e5c644d5cc3 228 if(wheel.getYay()==1)
simontruelove 5:4e5c644d5cc3 229 {
simontruelove 5:4e5c644d5cc3 230 RPM();
simontruelove 5:4e5c644d5cc3 231 }
simontruelove 5:4e5c644d5cc3 232 }
simontruelove 1:0191658b6ff4 233 }
simontruelove 1:0191658b6ff4 234 }
simontruelove 1:0191658b6ff4 235 void StepCW(void) //Square wave switching
simontruelove 1:0191658b6ff4 236 {
simontruelove 1:0191658b6ff4 237 Ph1();
simontruelove 3:4249dbdf7ed3 238 wait(x);
simontruelove 3:4249dbdf7ed3 239 Ph12();
simontruelove 1:0191658b6ff4 240 wait(y);
simontruelove 1:0191658b6ff4 241 Ph2();
simontruelove 3:4249dbdf7ed3 242 wait(x);
simontruelove 3:4249dbdf7ed3 243 Ph23();
simontruelove 1:0191658b6ff4 244 wait(y);
simontruelove 1:0191658b6ff4 245 Ph3();
simontruelove 3:4249dbdf7ed3 246 wait(x);
simontruelove 3:4249dbdf7ed3 247 Ph34();
simontruelove 1:0191658b6ff4 248 wait(y);
simontruelove 1:0191658b6ff4 249 Ph4();
simontruelove 3:4249dbdf7ed3 250 wait(x);
simontruelove 3:4249dbdf7ed3 251 Ph41();
simontruelove 3:4249dbdf7ed3 252 wait(y);
simontruelove 1:0191658b6ff4 253 }
simontruelove 1:0191658b6ff4 254
simontruelove 1:0191658b6ff4 255 void Ph1(void)
simontruelove 1:0191658b6ff4 256 {
simontruelove 3:4249dbdf7ed3 257 Phase1 = 1;
simontruelove 3:4249dbdf7ed3 258 Phase2 = Phase3 = Phase4 = 0;
simontruelove 3:4249dbdf7ed3 259 //wait(x);
simontruelove 3:4249dbdf7ed3 260 //pc.printf("Phase 1 = %i\n\r", wheel.getPulses());
simontruelove 3:4249dbdf7ed3 261 }
simontruelove 3:4249dbdf7ed3 262
simontruelove 3:4249dbdf7ed3 263 void Ph12 (void)
simontruelove 3:4249dbdf7ed3 264 {
simontruelove 3:4249dbdf7ed3 265 Phase1 = Phase2 = 1;
simontruelove 3:4249dbdf7ed3 266 Phase3 = Phase4 = 0;
simontruelove 3:4249dbdf7ed3 267 //wait(y);
simontruelove 1:0191658b6ff4 268 }
simontruelove 1:0191658b6ff4 269
simontruelove 1:0191658b6ff4 270 void Ph2(void)
simontruelove 1:0191658b6ff4 271 {
simontruelove 1:0191658b6ff4 272 Phase2 = 1;
simontruelove 1:0191658b6ff4 273 Phase1 = Phase3 = Phase4 = 0;
simontruelove 3:4249dbdf7ed3 274 //wait(x);
simontruelove 3:4249dbdf7ed3 275 //pc.printf("Phase 2 = %i\n\r", wheel.getPulses());
simontruelove 3:4249dbdf7ed3 276 }
simontruelove 3:4249dbdf7ed3 277
simontruelove 3:4249dbdf7ed3 278 void Ph23 (void)
simontruelove 3:4249dbdf7ed3 279 {
simontruelove 3:4249dbdf7ed3 280 Phase2 = Phase3 = 1;
simontruelove 3:4249dbdf7ed3 281 Phase4 = Phase1 = 0;
simontruelove 3:4249dbdf7ed3 282 //wait(y);
simontruelove 1:0191658b6ff4 283 }
simontruelove 0:634dd505dace 284
simontruelove 1:0191658b6ff4 285 void Ph3(void)
simontruelove 1:0191658b6ff4 286 {
simontruelove 1:0191658b6ff4 287 Phase3 = 1;
simontruelove 1:0191658b6ff4 288 Phase1 = Phase2 = Phase4 = 0;
simontruelove 3:4249dbdf7ed3 289 //wait(x);
simontruelove 3:4249dbdf7ed3 290 //pc.printf("Phase 3 = %i\n\r", wheel.getPulses());
simontruelove 3:4249dbdf7ed3 291 }
simontruelove 3:4249dbdf7ed3 292 void Ph34 (void)
simontruelove 3:4249dbdf7ed3 293 {
simontruelove 3:4249dbdf7ed3 294 Phase3 = Phase4 = 1;
simontruelove 3:4249dbdf7ed3 295 Phase1 = Phase2 = 0;
simontruelove 3:4249dbdf7ed3 296 //wait(y);
simontruelove 1:0191658b6ff4 297 }
simontruelove 1:0191658b6ff4 298
simontruelove 1:0191658b6ff4 299 void Ph4(void)
simontruelove 1:0191658b6ff4 300 {
simontruelove 1:0191658b6ff4 301 Phase4 = 1;
simontruelove 1:0191658b6ff4 302 Phase1 = Phase2 = Phase3 = 0;
simontruelove 3:4249dbdf7ed3 303 //wait(x);
simontruelove 3:4249dbdf7ed3 304 //pc.printf("Phase 4 = %i\n\r", wheel.getPulses());
simontruelove 3:4249dbdf7ed3 305 }
simontruelove 3:4249dbdf7ed3 306
simontruelove 3:4249dbdf7ed3 307 void Ph41 (void)
simontruelove 3:4249dbdf7ed3 308 {
simontruelove 3:4249dbdf7ed3 309 Phase4 = Phase1 = 1;
simontruelove 3:4249dbdf7ed3 310 Phase2 = Phase3 = 0;
simontruelove 3:4249dbdf7ed3 311 //wait(y);
simontruelove 3:4249dbdf7ed3 312 }
simontruelove 3:4249dbdf7ed3 313
simontruelove 3:4249dbdf7ed3 314 void Initialisation (void)
simontruelove 3:4249dbdf7ed3 315 {
simontruelove 3:4249dbdf7ed3 316 Phase1 = 0;
simontruelove 3:4249dbdf7ed3 317 Phase2 = 0;
simontruelove 3:4249dbdf7ed3 318 Phase3 = 0;
simontruelove 3:4249dbdf7ed3 319 Phase4 = 0;
simontruelove 3:4249dbdf7ed3 320 led1 = 0;
simontruelove 3:4249dbdf7ed3 321 led2 = 0;
simontruelove 3:4249dbdf7ed3 322 led3 = 0;
simontruelove 3:4249dbdf7ed3 323 led4 = 0;
simontruelove 3:4249dbdf7ed3 324 wheel.ResetYay();
simontruelove 4:3aedc9246ae4 325 }
simontruelove 4:3aedc9246ae4 326
simontruelove 4:3aedc9246ae4 327 void GetChar (void)
simontruelove 4:3aedc9246ae4 328 { if (pc.readable())
simontruelove 4:3aedc9246ae4 329 {
simontruelove 4:3aedc9246ae4 330 c = pc.getc();
simontruelove 4:3aedc9246ae4 331 if(c == 'z')
simontruelove 4:3aedc9246ae4 332 {
simontruelove 4:3aedc9246ae4 333 led1 = !led1;
simontruelove 4:3aedc9246ae4 334 led2 = 0;
simontruelove 4:3aedc9246ae4 335 }
simontruelove 4:3aedc9246ae4 336 if(c == 'x')
simontruelove 4:3aedc9246ae4 337 {
simontruelove 4:3aedc9246ae4 338 led1 = 0;
simontruelove 4:3aedc9246ae4 339 led2 = !led2 ;
simontruelove 4:3aedc9246ae4 340 }
simontruelove 4:3aedc9246ae4 341 }
simontruelove 5:4e5c644d5cc3 342 }
simontruelove 5:4e5c644d5cc3 343
simontruelove 5:4e5c644d5cc3 344 void RPM (void)
simontruelove 5:4e5c644d5cc3 345 {
simontruelove 5:4e5c644d5cc3 346 wheel.ResetYay();
simontruelove 5:4e5c644d5cc3 347 TimePerClick = (t.read_us());
simontruelove 5:4e5c644d5cc3 348 t.reset();
simontruelove 5:4e5c644d5cc3 349 TimePerRev = TimePerClick * 400;
simontruelove 5:4e5c644d5cc3 350 TimePerRev = TimePerRev / 1000;
simontruelove 5:4e5c644d5cc3 351 RPS = 10000000 / TimePerRev;
simontruelove 5:4e5c644d5cc3 352 rpm = (RPS * 60)/10000;
simontruelove 5:4e5c644d5cc3 353 //pc.printf("rpm = %d\n\r", rpm);
simontruelove 3:4249dbdf7ed3 354 }