VR FabLab - RoboVal
/
DiagnosticoTastierino
Gestione tastierino robotval
Diff: main.cpp
- Revision:
- 0:051324d87f93
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Sat May 05 14:42:39 2018 +0000 @@ -0,0 +1,71 @@ +#include "mbed.h" +#include "TextLCD.h" + +DigitalOut myled(LED1); + + +PinName rowPins[4] = { PB_0 , PA_4 , PA_1 , PA_0 }; +PinName colPins[4] = { PA_13 , PA_14 , PC_14 , PC_15 }; + +DigitalOut* _rows[4]; +DigitalIn* _cols[4]; + +TextLCD lcd(D2,D3,D4,D5,D6,D7); + +void printKeyBoard(){ + //lcd.cls(); + + + lcd.locate(0,0); + lcd.printf("KeyBoard: "); + + lcd.locate(0,1); + for(int i = 0;i < 4 ;i++){ + DigitalOut *row = _rows[i]; + + char level = 'L'; + if(row->read() == 1){ + level = 'H'; + } + lcd.printf( "%c" , level); + } + + lcd.printf( "%c" , " "); + + + for(int i = 0;i < 4;i++){ + DigitalIn *col = _cols[i]; + + char level = 'L'; + if(col->read() == 1){ + level = 'H'; + } + lcd.printf( "%c" , level); + } + +} + +int main() { + + lcd.locate(0,0); + lcd.printf("Clean"); + + + for(int i = 0;i < 4; i++){ + _rows[i] = new DigitalOut(rowPins[i]); + _rows[i]->write(0); + } + for(int i = 0;i < 4; i++){ + _cols[i] = new DigitalIn(colPins[i],PullDown); + } + + + while(1) { + for (int i = 0; i < 4; i++) { + _rows[i]->write(1); + printKeyBoard(); + wait(0.5); + _rows[i]->write(0); + } + } +}