Practica_6_-_Ejercicio_05

Dependencies:   mbed TextLCD Keypad

Committer:
isaacross99
Date:
Wed Nov 20 05:05:29 2019 +0000
Revision:
32:d5752716cdd4
Parent:
31:080589c1250a
0

Who changed what in which revision?

UserRevisionLine numberNew contents of line
dan 0:7dec7e9ac085 1 #include "mbed.h"
isaacross99 32:d5752716cdd4 2 #include "TextLCD.h"
isaacross99 32:d5752716cdd4 3 #include "Keypad.h"
isaacross99 32:d5752716cdd4 4 TextLCD lcd(PTE24, PTE25, PTD1, PTD3, PTD2, PTD0, TextLCD::LCD16x2); // rs, e, d4-d7
isaacross99 32:d5752716cdd4 5 Keypad kpad(PTA2, PTB23, PTA1, PTB9, PTC4, PTC12, PTC3, PTC2);
isaacross99 32:d5752716cdd4 6 DigitalIn borrador(PTC17);
isaacross99 32:d5752716cdd4 7 DigitalOut led(PTC16);
isaacross99 32:d5752716cdd4 8 int main() {
isaacross99 32:d5752716cdd4 9 char key, memoria = '.';
isaacross99 32:d5752716cdd4 10 int released = 1, contador = 0;
isaacross99 32:d5752716cdd4 11 led = 0;
isaacross99 32:d5752716cdd4 12 while(1){
isaacross99 32:d5752716cdd4 13 if(borrador){ //Testear la dualidad del botón borrador con el ejercicio 3.
isaacross99 32:d5752716cdd4 14 lcd.cls();
isaacross99 32:d5752716cdd4 15 led = 0;
isaacross99 32:d5752716cdd4 16 contador = 0;
isaacross99 32:d5752716cdd4 17 }
isaacross99 32:d5752716cdd4 18 else{
isaacross99 32:d5752716cdd4 19 key = kpad.ReadKey(); //read the current key pressed
isaacross99 30:f7518060fc89 20
isaacross99 32:d5752716cdd4 21 if(key == '\0')
isaacross99 32:d5752716cdd4 22 released = 1; //set the flag when all keys are released
isaacross99 32:d5752716cdd4 23
isaacross99 32:d5752716cdd4 24 if((key != '\0') && (released == 1)) { //if a key is pressed AND previous key was release
isaacross99 32:d5752716cdd4 25 lcd.cls();
isaacross99 32:d5752716cdd4 26 switch(key){
isaacross99 32:d5752716cdd4 27 case '0': lcd.printf("00000000 ");
isaacross99 32:d5752716cdd4 28 break;
isaacross99 32:d5752716cdd4 29 case '1': lcd.printf("00000001 ");
isaacross99 32:d5752716cdd4 30 break;
isaacross99 32:d5752716cdd4 31 case '2': lcd.printf("00000010 ");
isaacross99 32:d5752716cdd4 32 break;
isaacross99 32:d5752716cdd4 33 case '3': lcd.printf("00000011 ");
isaacross99 32:d5752716cdd4 34 break;
isaacross99 32:d5752716cdd4 35 case '4': lcd.printf("00000100 ");
isaacross99 32:d5752716cdd4 36 break;
isaacross99 32:d5752716cdd4 37 case '5': lcd.printf("00000101 ");
isaacross99 32:d5752716cdd4 38 break;
isaacross99 32:d5752716cdd4 39 case '6': lcd.printf("00000110 ");
isaacross99 32:d5752716cdd4 40 break;
isaacross99 32:d5752716cdd4 41 case '7': lcd.printf("00000111 ");
isaacross99 32:d5752716cdd4 42 break;
isaacross99 32:d5752716cdd4 43 case '8': lcd.printf("00001000 ");
isaacross99 32:d5752716cdd4 44 break;
isaacross99 32:d5752716cdd4 45 case '9': lcd.printf("00001001 ");
isaacross99 32:d5752716cdd4 46 break;
isaacross99 32:d5752716cdd4 47 case 'A': lcd.printf("00001010 ");
isaacross99 32:d5752716cdd4 48 break;
isaacross99 32:d5752716cdd4 49 case 'B': lcd.printf("00001011 ");
isaacross99 32:d5752716cdd4 50 break;
isaacross99 32:d5752716cdd4 51 case 'C': lcd.printf("00001100 ");
isaacross99 32:d5752716cdd4 52 break;
isaacross99 32:d5752716cdd4 53 case 'D': lcd.printf("00001101 ");
isaacross99 32:d5752716cdd4 54 break;
isaacross99 32:d5752716cdd4 55 default: lcd.printf("%c", key);
isaacross99 32:d5752716cdd4 56 }
isaacross99 32:d5752716cdd4 57
isaacross99 32:d5752716cdd4 58 if(memoria == key)
isaacross99 32:d5752716cdd4 59 contador = contador + 1;
isaacross99 32:d5752716cdd4 60 else
isaacross99 32:d5752716cdd4 61 contador = 0;
isaacross99 32:d5752716cdd4 62
isaacross99 32:d5752716cdd4 63 if(contador > 0){
isaacross99 32:d5752716cdd4 64 lcd.cls();
isaacross99 32:d5752716cdd4 65 lcd.printf("\n%c = %d", key, contador);
isaacross99 32:d5752716cdd4 66 }
isaacross99 32:d5752716cdd4 67
isaacross99 32:d5752716cdd4 68 if(contador == 10){
isaacross99 32:d5752716cdd4 69 led = 1;
isaacross99 32:d5752716cdd4 70 }
isaacross99 32:d5752716cdd4 71
isaacross99 32:d5752716cdd4 72 memoria = key;
isaacross99 32:d5752716cdd4 73 released = 0; //clear the flag to indicate that key is still pressed
isaacross99 32:d5752716cdd4 74 }
isaacross99 32:d5752716cdd4 75 }
isaacross99 31:080589c1250a 76 }
isaacross99 28:868b283c5f77 77 }