![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
al oprimir cualquier tecla del teclado matricial 4x4 se genera un sonido.
Dependencies: FPointer TextLCD keypad mbed
Fork of Tarea6 by
Diff: main.cpp
- 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);