pulses and Revolutions
Dependencies: QEI TextLCD mbed
Fork of LCD by
Diff: main.cpp
- Revision:
- 2:38cc05580c42
- Parent:
- 0:88e974ab5621
--- a/main.cpp Thu May 25 08:57:03 2017 +0000 +++ b/main.cpp Tue Jun 13 08:14:10 2017 +0000 @@ -1,40 +1,40 @@ #include "mbed.h" #include "TextLCD.h" +#include "QEI.h" -TextLCD lcd(PA_0,PA_1,PA_4,PB_0,PC_1,PC_0); // RS, E, D4-D7 -Serial gy25(PA_9, PA_10, 115200); -DigitalOut rw(PA_8); // RW +// BUTTON +InterruptIn button(USER_BUTTON); -int g[3]; -char rxC[8]; +// for debugging +//Serial pc(USBTX, USBRX, 115200); -void rxIRQ(){ - rxC[0] = gy25.getc(); - if (rxC[0] == 170) { - for (int i = 1; i < 8; i++) { - rxC[i] = gy25.getc(); - } - if (rxC[7] == 85) { - for (int i = 0, j =1; i < 3; i++, j+=2) { - g[i] = (rxC[j]<<8 | rxC[j+1])/100; - if (g[i] > 475) - g[i] = g[i] - 476 + 180; - } - } - } +// ENCODER +#define N 1000 +QEI wheel(PA_5, PA_6, PA_7, N, QEI::X4_ENCODING); // A, B, Z, pulses/revolution, mode + +// 2x16 LCD +TextLCD lcd(PC_11,PC_10,PC_0,PC_3,PC_1,PC_2); // RS, E, D4-D7 + +void pressed() { + lcd.printf("Button Pressed\n"); + wheel.reset(); } int main() { - gy25.format(8,SerialBase::None,1); + //pc.format(8,SerialBase::None,1); + button.fall(&pressed); lcd.cls(); - lcd.printf("LCD work"); - wait(1); - gy25.attach(rxIRQ, RawSerial::RxIrq); + lcd.locate(0,0); + lcd.printf("Wellcome!"); + int p,r; while(1) { + p = wheel.getPulses(); + r = wheel.getRevolutions(); lcd.locate(0,1); - lcd.printf("%d,%d,%d",g[0],g[1],g[2]); - wait(0.4); + lcd.printf("p : %i, r : %i\n",p,r); + //pc.printf("p : %i, r : %i\n",p,r); + wait(0.1); lcd.cls(); } } \ No newline at end of file