testtest
main.cpp@0:081a0007e5b3, 2014-12-01 (annotated)
- Committer:
- kikoaac
- Date:
- Mon Dec 01 08:25:22 2014 +0000
- Revision:
- 0:081a0007e5b3
test QEI;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
kikoaac | 0:081a0007e5b3 | 1 | #include "mbed.h" |
kikoaac | 0:081a0007e5b3 | 2 | #include "QEI.h" |
kikoaac | 0:081a0007e5b3 | 3 | #define ROTATE_PER_REVOLUTIONS 48 |
kikoaac | 0:081a0007e5b3 | 4 | DigitalOut led1(LED1); |
kikoaac | 0:081a0007e5b3 | 5 | DigitalOut led2(LED2); |
kikoaac | 0:081a0007e5b3 | 6 | DigitalOut led3(LED3); |
kikoaac | 0:081a0007e5b3 | 7 | DigitalOut led4(LED4); |
kikoaac | 0:081a0007e5b3 | 8 | Ticker timer1; |
kikoaac | 0:081a0007e5b3 | 9 | Ticker timer2; |
kikoaac | 0:081a0007e5b3 | 10 | Serial pc(USBTX, USBRX); // tx, rx pc hyper terminal |
kikoaac | 0:081a0007e5b3 | 11 | QEI wheel1(D1,D0,NC, ROTATE_PER_REVOLUTIONS, QEI::X4_ENCODING); |
kikoaac | 0:081a0007e5b3 | 12 | int buf,cfd,predata,pulse1,pulse2; |
kikoaac | 0:081a0007e5b3 | 13 | |
kikoaac | 0:081a0007e5b3 | 14 | void disp() { |
kikoaac | 0:081a0007e5b3 | 15 | /*lcd.locate(0,0); |
kikoaac | 0:081a0007e5b3 | 16 | lcd.printf("ec1:%03d ec2:%03d\n", pulse1,pulse2); |
kikoaac | 0:081a0007e5b3 | 17 | lcd.locate(0,1); |
kikoaac | 0:081a0007e5b3 | 18 | lcd.printf("cfd:%03d\n", cfd); */ |
kikoaac | 0:081a0007e5b3 | 19 | printf("encoder1: %02d\n\r", pulse1); |
kikoaac | 0:081a0007e5b3 | 20 | printf("encoder2: %02d\n\r", pulse2); |
kikoaac | 0:081a0007e5b3 | 21 | printf("cfd:%03d\n\r", cfd); |
kikoaac | 0:081a0007e5b3 | 22 | led2=!led2; //check |
kikoaac | 0:081a0007e5b3 | 23 | } |
kikoaac | 0:081a0007e5b3 | 24 | void encoder() { |
kikoaac | 0:081a0007e5b3 | 25 | pulse1 = wheel1.getPulses()/4; |
kikoaac | 0:081a0007e5b3 | 26 | //pulse2 = wheel2.getPulses()/4; |
kikoaac | 0:081a0007e5b3 | 27 | led4=!led4; //check |
kikoaac | 0:081a0007e5b3 | 28 | } |
kikoaac | 0:081a0007e5b3 | 29 | int main() |
kikoaac | 0:081a0007e5b3 | 30 | { |
kikoaac | 0:081a0007e5b3 | 31 | timer1.attach_us(&disp, 50000); //100ms |
kikoaac | 0:081a0007e5b3 | 32 | timer2.attach_us(&encoder,10); //10ms |
kikoaac | 0:081a0007e5b3 | 33 | printf("Opt Feder X1"); |
kikoaac | 0:081a0007e5b3 | 34 | while(1) |
kikoaac | 0:081a0007e5b3 | 35 | { |
kikoaac | 0:081a0007e5b3 | 36 | led3=!led3;//check |
kikoaac | 0:081a0007e5b3 | 37 | if(pc.readable()) { |
kikoaac | 0:081a0007e5b3 | 38 | buf = pc.getc(); |
kikoaac | 0:081a0007e5b3 | 39 | if(buf == 127) |
kikoaac | 0:081a0007e5b3 | 40 | { //to aboid freeze issue at 127 not fixed. |
kikoaac | 0:081a0007e5b3 | 41 | buf =pc.getc(); |
kikoaac | 0:081a0007e5b3 | 42 | } |
kikoaac | 0:081a0007e5b3 | 43 | cfd = buf; |
kikoaac | 0:081a0007e5b3 | 44 | if(buf != predata) |
kikoaac | 0:081a0007e5b3 | 45 | { |
kikoaac | 0:081a0007e5b3 | 46 | if(buf >= 3) |
kikoaac | 0:081a0007e5b3 | 47 | { |
kikoaac | 0:081a0007e5b3 | 48 | led1 = 1; |
kikoaac | 0:081a0007e5b3 | 49 | } |
kikoaac | 0:081a0007e5b3 | 50 | else{ |
kikoaac | 0:081a0007e5b3 | 51 | led1 =0; |
kikoaac | 0:081a0007e5b3 | 52 | } |
kikoaac | 0:081a0007e5b3 | 53 | //cfd = buf; |
kikoaac | 0:081a0007e5b3 | 54 | predata = buf; |
kikoaac | 0:081a0007e5b3 | 55 | |
kikoaac | 0:081a0007e5b3 | 56 | }//if(x1 != predata) |
kikoaac | 0:081a0007e5b3 | 57 | |
kikoaac | 0:081a0007e5b3 | 58 | }//if(device.readable()) |
kikoaac | 0:081a0007e5b3 | 59 | } |
kikoaac | 0:081a0007e5b3 | 60 | } |