
QEI_X1_LCD_test3
Dependencies: QEI TextLCD USBDevice mbed
main.cpp
- Committer:
- toucyy
- Date:
- 2014-08-29
- Revision:
- 0:b32c7162cd9a
File content as of revision 0:b32c7162cd9a:
#include "mbed.h" #include "TextLCD.h" #include "QEI.h" #include "USBSerial.h" #define ROTATE_PER_REVOLUTIONS 48 Ticker timer1; Ticker timer2; Serial pc(USBTX, USBRX); // tx, rx pc hyper terminal Serial device(p9, p10); // tx, rx for opt fader xq TextLCD lcd(p24, p26, p27, p28, p29, p30); // rs, e, d4-d7 lcd QEI wheel1(p16, p17, NC, ROTATE_PER_REVOLUTIONS, QEI::X4_ENCODING); //encoder QEI wheel2(p21, p22, NC, ROTATE_PER_REVOLUTIONS, QEI::X4_ENCODING); //encoder DigitalOut led1(LED1); DigitalOut led2(LED2); DigitalOut led3(LED3); DigitalOut led4(LED4); //BusOut myleds(LED1, LED2, LED3, LED4); int buf,cfd,predata,pulse1,pulse2; void disp() { lcd.locate(0,0); lcd.printf("ec1:%03d ec2:%03d\n", pulse1,pulse2); lcd.locate(0,1); lcd.printf("cfd:%03d\n", cfd); //pc.printf("encoder1: %02d\n\r", pulse1); //pc.printf("encoder2: %02d\n\r", pulse2); //pc.printf("cfd:%03d\n\r", cfd); led2=!led2; //check } void encoder() { pulse1 = wheel1.getPulses()/4; pulse2 = wheel2.getPulses()/4; led4=!led4; //check } int main() { device.format(7, Serial::None, 1); device.baud(30400); //pc.baud(921600); pc.printf("Opt Feder X1"); lcd.printf("Opt Feder X1"); wait(1); timer1.attach_us(&disp, 50000); //100ms timer2.attach_us(&encoder,10); //10ms while(1) { led3=!led3;//check if(device.readable()) { buf = device.getc(); if(buf == 127) { //to aboid freeze issue at 127 not fixed. buf = device.getc(); } cfd = buf; if(buf != predata) { if(buf >= 3) { led1 = 1; } else{ led1 =0; } //cfd = buf; predata = buf; }//if(x1 != predata) }//if(device.readable()) }//while(1) }//main