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