Practica_6_-_Ejercicio_05
Dependencies: mbed TextLCD Keypad
main.cpp
- Committer:
- isaacross99
- Date:
- 2019-11-20
- Revision:
- 32:d5752716cdd4
- Parent:
- 31:080589c1250a
File content as of revision 32:d5752716cdd4:
#include "mbed.h" #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); DigitalIn borrador(PTC17); DigitalOut led(PTC16); int main() { char key, memoria = '.'; int released = 1, contador = 0; led = 0; while(1){ if(borrador){ //Testear la dualidad del botón borrador con el ejercicio 3. lcd.cls(); led = 0; contador = 0; } else{ 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 release lcd.cls(); switch(key){ case '0': lcd.printf("00000000 "); break; case '1': lcd.printf("00000001 "); break; case '2': lcd.printf("00000010 "); break; case '3': lcd.printf("00000011 "); break; case '4': lcd.printf("00000100 "); break; case '5': lcd.printf("00000101 "); break; case '6': lcd.printf("00000110 "); break; case '7': lcd.printf("00000111 "); break; case '8': lcd.printf("00001000 "); break; case '9': lcd.printf("00001001 "); break; case 'A': lcd.printf("00001010 "); break; case 'B': lcd.printf("00001011 "); break; case 'C': lcd.printf("00001100 "); break; case 'D': lcd.printf("00001101 "); break; default: lcd.printf("%c", key); } if(memoria == key) contador = contador + 1; else contador = 0; if(contador > 0){ lcd.cls(); lcd.printf("\n%c = %d", key, contador); } if(contador == 10){ led = 1; } memoria = key; released = 0; //clear the flag to indicate that key is still pressed } } } }