el programa tiene tres botones incremental, decremental y cambio con pitido

Dependencies:   DebouncedIn TextLCD mbed

Committer:
mescobart22
Date:
Wed Apr 09 15:36:03 2014 +0000
Revision:
0:fb8040455247
Tarea2_botones con pitido

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mescobart22 0:fb8040455247 1 #include "mbed.h"
mescobart22 0:fb8040455247 2 #include "DebouncedIn.h"
mescobart22 0:fb8040455247 3 #include "TextLCD.h"
mescobart22 0:fb8040455247 4
mescobart22 0:fb8040455247 5 TextLCD lcd(PTB10, PTB11, PTE2, PTE3, PTE4, PTE5); // rs, e, d4-d7
mescobart22 0:fb8040455247 6 DigitalOut pitido(PTC6); // variable de sonido
mescobart22 0:fb8040455247 7 DigitalOut led1(LED1);
mescobart22 0:fb8040455247 8 DigitalOut led2(LED2);
mescobart22 0:fb8040455247 9 DigitalOut led3(LED3);
mescobart22 0:fb8040455247 10 DebouncedIn button1(PTC12);
mescobart22 0:fb8040455247 11 DebouncedIn button2(PTC13);
mescobart22 0:fb8040455247 12 DebouncedIn button3(PTC11);
mescobart22 0:fb8040455247 13 int r;
mescobart22 0:fb8040455247 14 int C1=0x0F;
mescobart22 0:fb8040455247 15 int sp=0,kp=0,kd=0,ki=0,p=1;
mescobart22 0:fb8040455247 16 int main()
mescobart22 0:fb8040455247 17 {
mescobart22 0:fb8040455247 18 lcd.cls();
mescobart22 0:fb8040455247 19 lcd.writeCommand(C1);//escribimos un comando segun el manual del modulo LCD
mescobart22 0:fb8040455247 20 lcd.locate(8,0);
mescobart22 0:fb8040455247 21 lcd.printf("kp=%d", kp);
mescobart22 0:fb8040455247 22 lcd.locate(0,1);
mescobart22 0:fb8040455247 23 lcd.printf("Ki=%d", ki);
mescobart22 0:fb8040455247 24 lcd.locate(8,1);
mescobart22 0:fb8040455247 25 lcd.printf("Kd=%d", kd);
mescobart22 0:fb8040455247 26 lcd.locate(0,0);
mescobart22 0:fb8040455247 27 lcd.printf("Sp=%d", sp);
mescobart22 0:fb8040455247 28
mescobart22 0:fb8040455247 29 while(1)
mescobart22 0:fb8040455247 30 {
mescobart22 0:fb8040455247 31 if (button1.falling())
mescobart22 0:fb8040455247 32 {
mescobart22 0:fb8040455247 33 for(r=1; r<= 1000; ++r){
mescobart22 0:fb8040455247 34 pitido = 0;
mescobart22 0:fb8040455247 35 wait(0.00025);
mescobart22 0:fb8040455247 36 pitido = 1;
mescobart22 0:fb8040455247 37 wait(0.000085);
mescobart22 0:fb8040455247 38 }
mescobart22 0:fb8040455247 39 pitido = 0;
mescobart22 0:fb8040455247 40 led1 =!led1;
mescobart22 0:fb8040455247 41 if (p==1)
mescobart22 0:fb8040455247 42 {
mescobart22 0:fb8040455247 43 ++sp;
mescobart22 0:fb8040455247 44 lcd.locate(3,0);
mescobart22 0:fb8040455247 45 lcd.printf(" ");
mescobart22 0:fb8040455247 46 lcd.locate(3,0);
mescobart22 0:fb8040455247 47 lcd.printf("%d", sp);
mescobart22 0:fb8040455247 48
mescobart22 0:fb8040455247 49 }
mescobart22 0:fb8040455247 50 else if (p==2)
mescobart22 0:fb8040455247 51 {
mescobart22 0:fb8040455247 52 ++kp;
mescobart22 0:fb8040455247 53 lcd.locate(11,0);
mescobart22 0:fb8040455247 54 lcd.printf(" ");
mescobart22 0:fb8040455247 55 lcd.locate(11,0);
mescobart22 0:fb8040455247 56 lcd.printf("%d", kp);
mescobart22 0:fb8040455247 57 }
mescobart22 0:fb8040455247 58 else if (p==3)
mescobart22 0:fb8040455247 59 {
mescobart22 0:fb8040455247 60 ++ki;
mescobart22 0:fb8040455247 61 lcd.locate(3,1);
mescobart22 0:fb8040455247 62 lcd.printf(" ");
mescobart22 0:fb8040455247 63 lcd.locate(3,1);
mescobart22 0:fb8040455247 64 lcd.printf("%d", ki);
mescobart22 0:fb8040455247 65 }
mescobart22 0:fb8040455247 66 else if (p==4)
mescobart22 0:fb8040455247 67 {
mescobart22 0:fb8040455247 68 ++kd;
mescobart22 0:fb8040455247 69 lcd.locate(11,1);
mescobart22 0:fb8040455247 70 lcd.printf(" ");
mescobart22 0:fb8040455247 71 lcd.locate(11,1);
mescobart22 0:fb8040455247 72 lcd.printf("%d", kd);
mescobart22 0:fb8040455247 73 }
mescobart22 0:fb8040455247 74 }
mescobart22 0:fb8040455247 75 if (button2.falling())
mescobart22 0:fb8040455247 76 {
mescobart22 0:fb8040455247 77
mescobart22 0:fb8040455247 78 for(r=1; r<= 1000; ++r){
mescobart22 0:fb8040455247 79 pitido = 0;
mescobart22 0:fb8040455247 80 wait(0.0002);
mescobart22 0:fb8040455247 81 pitido = 1;
mescobart22 0:fb8040455247 82 wait(0.00008);
mescobart22 0:fb8040455247 83 }
mescobart22 0:fb8040455247 84 pitido = 0;
mescobart22 0:fb8040455247 85 led2 =!led2;
mescobart22 0:fb8040455247 86 if (p==1)
mescobart22 0:fb8040455247 87 {
mescobart22 0:fb8040455247 88 if (sp==0) // no mostrar nada
mescobart22 0:fb8040455247 89 {
mescobart22 0:fb8040455247 90 }
mescobart22 0:fb8040455247 91 else
mescobart22 0:fb8040455247 92 {
mescobart22 0:fb8040455247 93 --sp;
mescobart22 0:fb8040455247 94 lcd.locate(3,0);
mescobart22 0:fb8040455247 95 lcd.printf(" ");
mescobart22 0:fb8040455247 96 lcd.locate(3,0);
mescobart22 0:fb8040455247 97 lcd.printf("%d", sp);
mescobart22 0:fb8040455247 98 }
mescobart22 0:fb8040455247 99 }
mescobart22 0:fb8040455247 100 if (p==2)
mescobart22 0:fb8040455247 101 {
mescobart22 0:fb8040455247 102 if (kp==0) // no mostrar nada
mescobart22 0:fb8040455247 103 {
mescobart22 0:fb8040455247 104 }
mescobart22 0:fb8040455247 105 else
mescobart22 0:fb8040455247 106 {
mescobart22 0:fb8040455247 107 --kp;
mescobart22 0:fb8040455247 108 lcd.locate(11,0);
mescobart22 0:fb8040455247 109 lcd.printf(" ");
mescobart22 0:fb8040455247 110 lcd.locate(11,0);
mescobart22 0:fb8040455247 111 lcd.printf("%d", kp);
mescobart22 0:fb8040455247 112 }
mescobart22 0:fb8040455247 113 }
mescobart22 0:fb8040455247 114 if (p==3)
mescobart22 0:fb8040455247 115 {
mescobart22 0:fb8040455247 116 if (ki==0) // no mostrar nada
mescobart22 0:fb8040455247 117 {
mescobart22 0:fb8040455247 118 }
mescobart22 0:fb8040455247 119 else
mescobart22 0:fb8040455247 120 {
mescobart22 0:fb8040455247 121 --ki;
mescobart22 0:fb8040455247 122 lcd.locate(3,1);
mescobart22 0:fb8040455247 123 lcd.printf(" ");
mescobart22 0:fb8040455247 124 lcd.locate(3,1);
mescobart22 0:fb8040455247 125 lcd.printf("%d", ki);
mescobart22 0:fb8040455247 126 }
mescobart22 0:fb8040455247 127 }
mescobart22 0:fb8040455247 128 if (p==4)
mescobart22 0:fb8040455247 129 {
mescobart22 0:fb8040455247 130 if (kd==0) // no mostrar nada
mescobart22 0:fb8040455247 131 {
mescobart22 0:fb8040455247 132 }
mescobart22 0:fb8040455247 133 else
mescobart22 0:fb8040455247 134 {
mescobart22 0:fb8040455247 135 --kd;
mescobart22 0:fb8040455247 136 lcd.locate(11,1);
mescobart22 0:fb8040455247 137 lcd.printf(" ");
mescobart22 0:fb8040455247 138 lcd.locate(11,1);
mescobart22 0:fb8040455247 139 lcd.printf("%d", kd);
mescobart22 0:fb8040455247 140 }
mescobart22 0:fb8040455247 141 }
mescobart22 0:fb8040455247 142 }
mescobart22 0:fb8040455247 143
mescobart22 0:fb8040455247 144 if (button3.falling())
mescobart22 0:fb8040455247 145 {
mescobart22 0:fb8040455247 146 for(r=1; r<= 1000; ++r){
mescobart22 0:fb8040455247 147 pitido = 0;
mescobart22 0:fb8040455247 148 wait(0.0003);
mescobart22 0:fb8040455247 149 pitido = 1;
mescobart22 0:fb8040455247 150 wait(0.00007);
mescobart22 0:fb8040455247 151 }
mescobart22 0:fb8040455247 152 pitido = 0;
mescobart22 0:fb8040455247 153 led3 =!led3;
mescobart22 0:fb8040455247 154 if (p==1)
mescobart22 0:fb8040455247 155 {
mescobart22 0:fb8040455247 156 ++p;
mescobart22 0:fb8040455247 157 lcd.locate(11,0);
mescobart22 0:fb8040455247 158 lcd.printf("%d", kp);
mescobart22 0:fb8040455247 159
mescobart22 0:fb8040455247 160
mescobart22 0:fb8040455247 161 }
mescobart22 0:fb8040455247 162 else if (p==2)
mescobart22 0:fb8040455247 163 {
mescobart22 0:fb8040455247 164 ++p;
mescobart22 0:fb8040455247 165 lcd.locate(3,1);
mescobart22 0:fb8040455247 166 lcd.printf("%d", ki);
mescobart22 0:fb8040455247 167 lcd.locate(3,1);
mescobart22 0:fb8040455247 168
mescobart22 0:fb8040455247 169 }
mescobart22 0:fb8040455247 170 else if (p==3)
mescobart22 0:fb8040455247 171 {
mescobart22 0:fb8040455247 172 ++p;
mescobart22 0:fb8040455247 173 lcd.locate(11,1);
mescobart22 0:fb8040455247 174 lcd.printf("%d", kd);
mescobart22 0:fb8040455247 175 }
mescobart22 0:fb8040455247 176 else if (p==4)
mescobart22 0:fb8040455247 177 {
mescobart22 0:fb8040455247 178 p=1;
mescobart22 0:fb8040455247 179 lcd.locate(3,0);
mescobart22 0:fb8040455247 180 lcd.printf("%d", sp);
mescobart22 0:fb8040455247 181
mescobart22 0:fb8040455247 182
mescobart22 0:fb8040455247 183 }
mescobart22 0:fb8040455247 184 }
mescobart22 0:fb8040455247 185 }
mescobart22 0:fb8040455247 186 }