Practica_6_-_Ejercicio_03

Dependencies:   mbed TextLCD Keypad

Revision:
32:03bfdca818b6
Parent:
31:080589c1250a
--- a/main.cpp	Thu Oct 31 04:24:48 2019 +0000
+++ b/main.cpp	Wed Nov 20 05:03:38 2019 +0000
@@ -1,39 +1,22 @@
 #include "mbed.h"
-Serial pc(USBTX,USBRX);
-DigitalOut led0(PTD0); //Octavo pin (a partir del botón de RESET).
-DigitalOut led1(PTC4); //Noveno pin.
-DigitalOut led2(PTC12); //Decimo pin.
-DigitalOut led3(PTC3); //Onceavo pin (inicia en el nuevo carril). 
-Timer crono;
+#include "TextLCD.h"
+#include "Keypad.h"
+TextLCD lcd(PTE24, PTE25, PTD1, PTD3, PTD2, PTD0, TextLCD::LCD16x2); // rs, e, d4-d7
+Keypad kpad(PTA2, PTB23, PTA1, PTB9, PTC4, PTC12, PTC3, PTC2);
+
+int main() {
+    char key;
+    int released = 1;
 
-int main(){
-    led0 = 1;
-    led1 = 1;
-    led2 = 1;
-    led3 = 1;
-    crono.start();
-    for(int i; i < 50; i++){ // Dado que la resolución es de 1.8 grados, se necesitan 200 pasos para completar un giro.
-        led0 = 0;
-        led1 = 1;
-        led2 = 0;
-        led3 = 1;
-        wait(0.025‬‬);
-        led0 = 0;
-        led1 = 1;
-        led2 = 1;
-        led3 = 0;
-        wait(0.025‬);
-        led0 = 1;
-        led1 = 0;
-        led2 = 1;
-        led3 = 0;
-        wait(0.025‬);
-        led0 = 1;
-        led1 = 0;
-        led2 = 0;
-        led3 = 1;
-        wait(0.025‬);
+    while(1){
+        key = kpad.ReadKey();                   //read the current key pressed
+
+        if(key == '\0')
+            released = 1;                       //set the flag when all keys are released
+           
+        if((key != '\0') && (released == 1)) {  //if a key is pressed AND previous key was released
+            lcd.printf("%c", key);            
+            released = 0;                       //clear the flag to indicate that key is still pressed
+        }
     }
-    crono.stop();
-    pc.printf("Tiempo de giro: %f seg", crono.read());
-}
\ No newline at end of file
+}