LDC_TECLADO_MATRICIAL

Dependencies:   TextLCD mbed

Committer:
grupo3
Date:
Sat Sep 16 21:55:16 2017 +0000
Revision:
0:5ea4be70fe49
Grupo 3; LCD_TECLADO_MATRICIAL;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
grupo3 0:5ea4be70fe49 1 /* Copyright (c) 2010 Dimiter Kentri
grupo3 0:5ea4be70fe49 2
grupo3 0:5ea4be70fe49 3 Permission is hereby granted, free of charge, to any person obtaining a copy
grupo3 0:5ea4be70fe49 4 of this software and associated documentation files (the "Software"), to deal
grupo3 0:5ea4be70fe49 5 in the Software without restriction, including without limitation the rights
grupo3 0:5ea4be70fe49 6 to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
grupo3 0:5ea4be70fe49 7 copies of the Software, and to permit persons to whom the Software is
grupo3 0:5ea4be70fe49 8 furnished to do so, subject to the following conditions:
grupo3 0:5ea4be70fe49 9
grupo3 0:5ea4be70fe49 10 The above copyright notice and this permission notice shall be included in
grupo3 0:5ea4be70fe49 11 all copies or substantial portions of the Software.
grupo3 0:5ea4be70fe49 12
grupo3 0:5ea4be70fe49 13 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
grupo3 0:5ea4be70fe49 14 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
grupo3 0:5ea4be70fe49 15 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
grupo3 0:5ea4be70fe49 16 AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
grupo3 0:5ea4be70fe49 17 LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
grupo3 0:5ea4be70fe49 18 OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
grupo3 0:5ea4be70fe49 19 THE SOFTWARE.
grupo3 0:5ea4be70fe49 20 */
grupo3 0:5ea4be70fe49 21
grupo3 0:5ea4be70fe49 22 /*Simple example
grupo3 0:5ea4be70fe49 23
grupo3 0:5ea4be70fe49 24 #include "mbed.h"
grupo3 0:5ea4be70fe49 25 #include "keypad.h"
grupo3 0:5ea4be70fe49 26
grupo3 0:5ea4be70fe49 27 Serial pc(USBTX, USBRX);
grupo3 0:5ea4be70fe49 28 Keypad telepad(p13,p14,p15,p16,p17,p18,p19,p20);
grupo3 0:5ea4be70fe49 29
grupo3 0:5ea4be70fe49 30 int main(void){
grupo3 0:5ea4be70fe49 31 char key;
grupo3 0:5ea4be70fe49 32 pc.printf("Enter codes\n\r");
grupo3 0:5ea4be70fe49 33 while(1){
grupo3 0:5ea4be70fe49 34 key = telepad.getKey();
grupo3 0:5ea4be70fe49 35 if(key != KEY_RELEASED){
grupo3 0:5ea4be70fe49 36 pc.printf("%c\n",key);
grupo3 0:5ea4be70fe49 37 wait(0.6);
grupo3 0:5ea4be70fe49 38 }
grupo3 0:5ea4be70fe49 39 }
grupo3 0:5ea4be70fe49 40 } */
grupo3 0:5ea4be70fe49 41
grupo3 0:5ea4be70fe49 42 #include "mbed.h"
grupo3 0:5ea4be70fe49 43 #include "keypad.h"
grupo3 0:5ea4be70fe49 44
grupo3 0:5ea4be70fe49 45 using namespace mbed;
grupo3 0:5ea4be70fe49 46
grupo3 0:5ea4be70fe49 47 Keypad::Keypad(PinName col1, PinName col2, PinName col3, PinName col4, PinName row1,PinName row2, PinName row3, PinName row4): _col1(col1),
grupo3 0:5ea4be70fe49 48 _col2(col2),_col3(col3),_col4(col4),_rows(row1,row2,row3,row4)
grupo3 0:5ea4be70fe49 49 {
grupo3 0:5ea4be70fe49 50
grupo3 0:5ea4be70fe49 51 }
grupo3 0:5ea4be70fe49 52
grupo3 0:5ea4be70fe49 53 int Keypad::getKeyIndex()
grupo3 0:5ea4be70fe49 54 {
grupo3 0:5ea4be70fe49 55 for(int k=0; k<4; k++) {
grupo3 0:5ea4be70fe49 56 _rows = 0;
grupo3 0:5ea4be70fe49 57 }
grupo3 0:5ea4be70fe49 58 for(int i=0; i<4; i++) {
grupo3 0:5ea4be70fe49 59 _rows = 1 << i;
grupo3 0:5ea4be70fe49 60 for(int j=0; j<4; j++) {
grupo3 0:5ea4be70fe49 61 if (_col1)
grupo3 0:5ea4be70fe49 62 return 1+(i*4);
grupo3 0:5ea4be70fe49 63 else if (_col2)
grupo3 0:5ea4be70fe49 64 return 2+(i*4);
grupo3 0:5ea4be70fe49 65 else if (_col3)
grupo3 0:5ea4be70fe49 66 return 3+(i*4);
grupo3 0:5ea4be70fe49 67 else if (_col4)
grupo3 0:5ea4be70fe49 68 return 4+(i*4);
grupo3 0:5ea4be70fe49 69 }
grupo3 0:5ea4be70fe49 70 }
grupo3 0:5ea4be70fe49 71 return -1;
grupo3 0:5ea4be70fe49 72 }
grupo3 0:5ea4be70fe49 73
grupo3 0:5ea4be70fe49 74 char Keypad::getKey()
grupo3 0:5ea4be70fe49 75 {
grupo3 0:5ea4be70fe49 76 int k = getKeyIndex();
grupo3 0:5ea4be70fe49 77 if(k != -1)
grupo3 0:5ea4be70fe49 78 return keys[k-1];
grupo3 0:5ea4be70fe49 79 else
grupo3 0:5ea4be70fe49 80 return 0;
grupo3 0:5ea4be70fe49 81 }
grupo3 0:5ea4be70fe49 82