al oprimir cualquier tecla del teclado matricial 4x4 se genera un sonido.

Dependencies:   FPointer TextLCD keypad mbed

Fork of Tarea6 by Alexander Vallejo

Revision:
1:71b5c04df300
Parent:
0:e8c0430c5d6d
--- a/main.cpp	Fri Nov 29 18:26:39 2013 +0000
+++ b/main.cpp	Tue Apr 08 16:56:14 2014 +0000
@@ -6,6 +6,8 @@
 TextLCD lcd(PTB10, PTB11, PTE2, PTE3, PTE4, PTE5); // rs, e, d4-d7
 AnalogIn y(PTB0);
 AnalogOut u(PTE30);
+PwmOut sound(PTA12);
+
 int C1=0x0F; // Cursor
 int C4=0x0C; // quito cursor bajo
 int spnum=0,kinum=0,kpnum=0,kdnum=0,pos=1,tecla,flag1=1,num=0;
@@ -29,7 +31,7 @@
 }
 
 int main() {
-    Keypad keypad(PTA2, PTD4, PTD3, PTD7,PTA13, PTD5, PTD0, PTD2);
+    Keypad keypad(PTA2,PTD4,PTD3,PTD7,PTA13,PTD5,PTD0,PTD2);
     ini1:
     err=0; med=0; yr=0; pid=0; ap=0; ai=0; ad=0; err_v=0;pidn=0;
     lcd.cls(); // Borrar Pantalla
@@ -48,7 +50,12 @@
     keypad.CallAfterInput(&cbAfterInput);
     keypad.Start();
     if(flag1==0){
-        if(Keytable[tecla]=='B'){
+        if(Keytable[tecla]=='B'){                                     // Cambia de posición entre kp kd ki y sp
+        
+            sound=1.0f;
+            wait(0.1);
+            sound=0;
+        
             cadena[0]=' ';cadena[1]=' ';cadena[2]=' ';
             llena=0;
             num=0;
@@ -57,7 +64,12 @@
             else {
                 pos++;}
         }
-        else if(Keytable[tecla]=='A'){
+        else if(Keytable[tecla]=='A'){             //con el A borra
+        
+            sound=1.0f;
+            wait(0.1);
+            sound=0;
+        
             llena--;
             cadena[llena]=' ';
             num=strtod(cadena,NULL);
@@ -68,7 +80,12 @@
                 num=strtod(cadena,NULL);
                 llena++;}
         }
-        else if(Keytable[tecla]=='D'){
+        else if(Keytable[tecla]=='D'){            //guarda y simula el PID
+        
+            sound=1.0f;
+            wait(0.1);
+            sound=0;
+        
             lcd.writeCommand(C4);//escribimos un comando segun el manual del modulo LCD para quitar cursor bajo
             lcd.cls(); //borra la pantalla
             lcd.printf("   GUARDADOS!");
@@ -87,7 +104,12 @@
             lcd.printf("Co=%d",pid);
             wait(2);
             cicloPID:
-                if(Keytable[tecla]=='C'){
+                if(Keytable[tecla]=='C'){                                   //detiene la simulación y reinicia todas las constantes
+                
+            sound=1.0f;
+            wait(0.1);
+            sound=0;
+            
                     spnum=0;kinum=0;kpnum=0;kdnum=0;llena=0;pos=1;flag1=1;
                     cadena[0]=' ';cadena[1]=' ';cadena[2]=' ';
                     goto ini1;}
@@ -124,22 +146,42 @@
                 wait(0.005);
             goto cicloPID;
         }            
-        if(pos==1){
+        if(pos==1){                    // cambia los numeros del 1 al 3
+            
+            sound=1.0f;
+            wait(0.1);
+            sound=0;
+            
             spnum=num;
             lcd.locate(3,0);lcd.printf("    ");
             lcd.locate(3,0);lcd.printf("%d",spnum);
         }
-        else if(pos==2){
+        else if(pos==2){                // cambia los numeros del 4 al 5
+            
+            sound=1.0f;
+            wait(0.1);
+            sound=0;
+            
             kpnum=num;
             lcd.locate(11,0);lcd.printf("    ");
             lcd.locate(11,0);lcd.printf("%d",kpnum);
         }
-        else if(pos==3){
+        else if(pos==3){                 // cambia los numeros del 7 al 9
+            
+            sound=1.0f;
+            wait(0.1);
+            sound=0;
+            
             kinum=num;
             lcd.locate(3,1);lcd.printf("    ");
             lcd.locate(3,1);lcd.printf("%d",kinum);
         }
-        else if(pos==4){
+        else if(pos==4){                // cambia los numeros de *, 0, #
+            
+            sound=1.0f;
+            wait(0.1);
+            sound=0;
+            
             kdnum=num;
             lcd.locate(11,1);lcd.printf("    ");
             lcd.locate(11,1);lcd.printf("%d",kdnum);