algo

Dependencies:   Debounced TextLCD2 mbed

Fork of tarea2 by Laura Corrales

Committer:
szapataa
Date:
Wed Oct 14 00:07:42 2015 +0000
Revision:
1:bf54a30a2b14
Parent:
0:3883458d6df5
n

Who changed what in which revision?

UserRevisionLine numberNew contents of line
lcorralesc1 0:3883458d6df5 1 #include "mbed.h"
lcorralesc1 0:3883458d6df5 2 #include "DebouncedIn.h"
lcorralesc1 0:3883458d6df5 3 #include "TextLCD.h"
lcorralesc1 0:3883458d6df5 4
lcorralesc1 0:3883458d6df5 5 AnalogIn Vin(PTC2);
lcorralesc1 0:3883458d6df5 6 TextLCD lcd(PTB10, PTB11, PTE2, PTE3, PTE4, PTE5); // rs, e, d4-d7
lcorralesc1 0:3883458d6df5 7
lcorralesc1 0:3883458d6df5 8 DigitalOut led1(LED1);
lcorralesc1 0:3883458d6df5 9 DigitalOut led2(LED2);
lcorralesc1 0:3883458d6df5 10 DigitalOut led3(LED3);
lcorralesc1 0:3883458d6df5 11 DigitalIn button1(PTC12);
lcorralesc1 0:3883458d6df5 12 DigitalIn button2(PTC13);
lcorralesc1 0:3883458d6df5 13 DigitalIn button3(PTC16);
szapataa 1:bf54a30a2b14 14 DebouncedIn button4(PTC17);
lcorralesc1 0:3883458d6df5 15
lcorralesc1 0:3883458d6df5 16
lcorralesc1 0:3883458d6df5 17
lcorralesc1 0:3883458d6df5 18 int C1=0x0F;
lcorralesc1 0:3883458d6df5 19 int spnum=0,kinum=0,kpnum=0,kdnum=0,pos=1;
szapataa 1:bf54a30a2b14 20 int incremento=1,decremento=1,flagt=0;
lcorralesc1 0:3883458d6df5 21 Timer t;
lcorralesc1 0:3883458d6df5 22
lcorralesc1 0:3883458d6df5 23 int main()
lcorralesc1 0:3883458d6df5 24 {
lcorralesc1 0:3883458d6df5 25 lcd.cls(); // Borrar Pantalla
lcorralesc1 0:3883458d6df5 26 lcd.writeCommand(C1);//escribimos un comando segun el manual del modulo LCD
lcorralesc1 0:3883458d6df5 27
lcorralesc1 0:3883458d6df5 28 lcd.locate(8,0);
lcorralesc1 0:3883458d6df5 29 lcd.printf("Kp=%d",kpnum);
lcorralesc1 0:3883458d6df5 30 lcd.locate(0,1);
lcorralesc1 0:3883458d6df5 31 lcd.printf("Ki=%d",kinum);
lcorralesc1 0:3883458d6df5 32 lcd.locate(8,1);
lcorralesc1 0:3883458d6df5 33 lcd.printf("Kd=%d",kdnum);
lcorralesc1 0:3883458d6df5 34 lcd.locate(0,0);
lcorralesc1 0:3883458d6df5 35 lcd.printf("Sp=%d",spnum);
szapataa 1:bf54a30a2b14 36
lcorralesc1 0:3883458d6df5 37 while(1)
lcorralesc1 0:3883458d6df5 38 {
lcorralesc1 0:3883458d6df5 39 if (!button1)
lcorralesc1 0:3883458d6df5 40 {
lcorralesc1 0:3883458d6df5 41 if(flagt==0)
lcorralesc1 0:3883458d6df5 42 {
lcorralesc1 0:3883458d6df5 43 t.start();
lcorralesc1 0:3883458d6df5 44 flagt=1;
lcorralesc1 0:3883458d6df5 45 }
lcorralesc1 0:3883458d6df5 46
lcorralesc1 0:3883458d6df5 47 led1 =!led1;
lcorralesc1 0:3883458d6df5 48 wait(0.50);
lcorralesc1 0:3883458d6df5 49 if(!button1)
lcorralesc1 0:3883458d6df5 50 {
lcorralesc1 0:3883458d6df5 51 if(t.read()>10)
lcorralesc1 0:3883458d6df5 52 {
lcorralesc1 0:3883458d6df5 53 incremento=100;
lcorralesc1 0:3883458d6df5 54 }
lcorralesc1 0:3883458d6df5 55 else if(t.read()>5.5)
lcorralesc1 0:3883458d6df5 56 {
lcorralesc1 0:3883458d6df5 57 incremento=10;
lcorralesc1 0:3883458d6df5 58 }
lcorralesc1 0:3883458d6df5 59
lcorralesc1 0:3883458d6df5 60 if(pos==1)
lcorralesc1 0:3883458d6df5 61 {
lcorralesc1 0:3883458d6df5 62 if(spnum+incremento>=999)
lcorralesc1 0:3883458d6df5 63 {
lcorralesc1 0:3883458d6df5 64 spnum=999;
lcorralesc1 0:3883458d6df5 65 lcd.locate(3,0);
lcorralesc1 0:3883458d6df5 66 lcd.printf(" ");
lcorralesc1 0:3883458d6df5 67 lcd.locate(3,0);
lcorralesc1 0:3883458d6df5 68 lcd.printf("%d", spnum);
lcorralesc1 0:3883458d6df5 69 }
lcorralesc1 0:3883458d6df5 70 else
lcorralesc1 0:3883458d6df5 71 {
lcorralesc1 0:3883458d6df5 72 spnum+=incremento;
lcorralesc1 0:3883458d6df5 73 lcd.locate(3,0);
lcorralesc1 0:3883458d6df5 74 lcd.printf("%d", spnum);
lcorralesc1 0:3883458d6df5 75 }
lcorralesc1 0:3883458d6df5 76 }
lcorralesc1 0:3883458d6df5 77 else if(pos==2)
lcorralesc1 0:3883458d6df5 78 {
lcorralesc1 0:3883458d6df5 79 if(kpnum+incremento>=999)
lcorralesc1 0:3883458d6df5 80 {
lcorralesc1 0:3883458d6df5 81 kpnum=999;
lcorralesc1 0:3883458d6df5 82 lcd.locate(11,0);
lcorralesc1 0:3883458d6df5 83 lcd.printf(" ");
lcorralesc1 0:3883458d6df5 84 lcd.locate(11,0);
lcorralesc1 0:3883458d6df5 85 lcd.printf("%d", kpnum);
lcorralesc1 0:3883458d6df5 86 }
lcorralesc1 0:3883458d6df5 87 else
lcorralesc1 0:3883458d6df5 88 {
lcorralesc1 0:3883458d6df5 89 kpnum+=incremento;
lcorralesc1 0:3883458d6df5 90 lcd.locate(11,0);
lcorralesc1 0:3883458d6df5 91 lcd.printf("%d", kpnum);
lcorralesc1 0:3883458d6df5 92 }
lcorralesc1 0:3883458d6df5 93 }
lcorralesc1 0:3883458d6df5 94 else if(pos==3)
lcorralesc1 0:3883458d6df5 95 {
lcorralesc1 0:3883458d6df5 96 if(kinum+incremento>=999)
lcorralesc1 0:3883458d6df5 97 {
lcorralesc1 0:3883458d6df5 98 kinum=999;
lcorralesc1 0:3883458d6df5 99 lcd.locate(3,1);
lcorralesc1 0:3883458d6df5 100 lcd.printf(" ");
lcorralesc1 0:3883458d6df5 101 lcd.locate(3,1);
lcorralesc1 0:3883458d6df5 102 lcd.printf("%d", kinum);
lcorralesc1 0:3883458d6df5 103 }
lcorralesc1 0:3883458d6df5 104 else
lcorralesc1 0:3883458d6df5 105 {
lcorralesc1 0:3883458d6df5 106 kinum+=incremento;
lcorralesc1 0:3883458d6df5 107 lcd.locate(3,1);
lcorralesc1 0:3883458d6df5 108 lcd.printf("%d", kinum);
lcorralesc1 0:3883458d6df5 109 }
lcorralesc1 0:3883458d6df5 110 }
lcorralesc1 0:3883458d6df5 111 else if(pos==4)
lcorralesc1 0:3883458d6df5 112 {
lcorralesc1 0:3883458d6df5 113 if(kdnum+incremento>=999)
lcorralesc1 0:3883458d6df5 114 {
lcorralesc1 0:3883458d6df5 115 kdnum=999;
lcorralesc1 0:3883458d6df5 116 lcd.locate(11,1);
lcorralesc1 0:3883458d6df5 117 lcd.printf(" ");
lcorralesc1 0:3883458d6df5 118 lcd.locate(11,1);
lcorralesc1 0:3883458d6df5 119 lcd.printf("%d", kdnum);
lcorralesc1 0:3883458d6df5 120 }
lcorralesc1 0:3883458d6df5 121 else
lcorralesc1 0:3883458d6df5 122 {
lcorralesc1 0:3883458d6df5 123 kdnum+=incremento;
lcorralesc1 0:3883458d6df5 124 lcd.locate(11,1);
lcorralesc1 0:3883458d6df5 125 lcd.printf("%d", kdnum);
lcorralesc1 0:3883458d6df5 126 }
lcorralesc1 0:3883458d6df5 127 }
lcorralesc1 0:3883458d6df5 128 }
lcorralesc1 0:3883458d6df5 129 }
lcorralesc1 0:3883458d6df5 130
lcorralesc1 0:3883458d6df5 131 if (!button2)
lcorralesc1 0:3883458d6df5 132 {
lcorralesc1 0:3883458d6df5 133 if(flagt==0)
lcorralesc1 0:3883458d6df5 134 {
szapataa 1:bf54a30a2b14 135 t.start();
szapataa 1:bf54a30a2b14 136 flagt=1;
szapataa 1:bf54a30a2b14 137 }
szapataa 1:bf54a30a2b14 138
szapataa 1:bf54a30a2b14 139 led1 =!led1;
szapataa 1:bf54a30a2b14 140 wait(0.50);
szapataa 1:bf54a30a2b14 141 if(!button2)
szapataa 1:bf54a30a2b14 142 {
szapataa 1:bf54a30a2b14 143 if(t.read()>10)
szapataa 1:bf54a30a2b14 144 {
szapataa 1:bf54a30a2b14 145 decremento=100;
szapataa 1:bf54a30a2b14 146 }
szapataa 1:bf54a30a2b14 147 else if(t.read()>5.5)
szapataa 1:bf54a30a2b14 148 {
szapataa 1:bf54a30a2b14 149 decremento=10;
szapataa 1:bf54a30a2b14 150 }
szapataa 1:bf54a30a2b14 151
szapataa 1:bf54a30a2b14 152 if(pos==1)
szapataa 1:bf54a30a2b14 153 {
szapataa 1:bf54a30a2b14 154
szapataa 1:bf54a30a2b14 155 if(spnum>=999)
szapataa 1:bf54a30a2b14 156 {
szapataa 1:bf54a30a2b14 157 spnum=999;
szapataa 1:bf54a30a2b14 158 lcd.locate(3,0);
szapataa 1:bf54a30a2b14 159 lcd.printf(" ");
szapataa 1:bf54a30a2b14 160 lcd.locate(3,0);
szapataa 1:bf54a30a2b14 161 lcd.printf("%d", spnum);
szapataa 1:bf54a30a2b14 162
szapataa 1:bf54a30a2b14 163 }
szapataa 1:bf54a30a2b14 164
szapataa 1:bf54a30a2b14 165 else
szapataa 1:bf54a30a2b14 166 {
szapataa 1:bf54a30a2b14 167 if(spnum==0)
szapataa 1:bf54a30a2b14 168 { spnum=0;
szapataa 1:bf54a30a2b14 169 lcd.locate(0,0);
szapataa 1:bf54a30a2b14 170 lcd.printf("Sp=%d",spnum);
szapataa 1:bf54a30a2b14 171 lcd.locate(3,0);
szapataa 1:bf54a30a2b14 172 lcd.printf("%d", spnum);
szapataa 1:bf54a30a2b14 173 }
szapataa 1:bf54a30a2b14 174
szapataa 1:bf54a30a2b14 175 spnum-=decremento;
szapataa 1:bf54a30a2b14 176 lcd.locate(3,0);
szapataa 1:bf54a30a2b14 177 lcd.printf("%d", spnum);
szapataa 1:bf54a30a2b14 178 }
szapataa 1:bf54a30a2b14 179 }
szapataa 1:bf54a30a2b14 180 else if(pos==2)
szapataa 1:bf54a30a2b14 181 {
szapataa 1:bf54a30a2b14 182 if(kpnum>=999)
szapataa 1:bf54a30a2b14 183 {
szapataa 1:bf54a30a2b14 184 kpnum=999;
szapataa 1:bf54a30a2b14 185 lcd.locate(11,0);
szapataa 1:bf54a30a2b14 186 lcd.printf(" ");
szapataa 1:bf54a30a2b14 187 lcd.locate(11,0);
szapataa 1:bf54a30a2b14 188 lcd.printf("%d", kpnum);
szapataa 1:bf54a30a2b14 189 }
szapataa 1:bf54a30a2b14 190 else
szapataa 1:bf54a30a2b14 191 {
szapataa 1:bf54a30a2b14 192 kpnum-=decremento;
szapataa 1:bf54a30a2b14 193 lcd.locate(11,0);
szapataa 1:bf54a30a2b14 194 lcd.printf("%d", kpnum);
szapataa 1:bf54a30a2b14 195 }
szapataa 1:bf54a30a2b14 196 }
szapataa 1:bf54a30a2b14 197 else if(pos==3)
szapataa 1:bf54a30a2b14 198 {
szapataa 1:bf54a30a2b14 199 if(kinum>=999)
szapataa 1:bf54a30a2b14 200 {
szapataa 1:bf54a30a2b14 201 kinum=999;
szapataa 1:bf54a30a2b14 202 lcd.locate(3,1);
szapataa 1:bf54a30a2b14 203 lcd.printf(" ");
szapataa 1:bf54a30a2b14 204 lcd.locate(3,1);
szapataa 1:bf54a30a2b14 205 lcd.printf("%d", kinum);
szapataa 1:bf54a30a2b14 206 }
szapataa 1:bf54a30a2b14 207 else
szapataa 1:bf54a30a2b14 208 {
szapataa 1:bf54a30a2b14 209 kinum-=decremento;
szapataa 1:bf54a30a2b14 210 lcd.locate(3,1);
szapataa 1:bf54a30a2b14 211 lcd.printf("%d", kinum);
szapataa 1:bf54a30a2b14 212 }
szapataa 1:bf54a30a2b14 213 }
szapataa 1:bf54a30a2b14 214 else if(pos==4)
szapataa 1:bf54a30a2b14 215 {
szapataa 1:bf54a30a2b14 216 if(kdnum>=999)
szapataa 1:bf54a30a2b14 217 {
szapataa 1:bf54a30a2b14 218 kdnum=999;
szapataa 1:bf54a30a2b14 219 lcd.locate(11,1);
szapataa 1:bf54a30a2b14 220 lcd.printf(" ");
szapataa 1:bf54a30a2b14 221 lcd.locate(11,1);
szapataa 1:bf54a30a2b14 222 lcd.printf("%d", kdnum);
szapataa 1:bf54a30a2b14 223 }
szapataa 1:bf54a30a2b14 224 else
szapataa 1:bf54a30a2b14 225 {
szapataa 1:bf54a30a2b14 226 kdnum-=decremento;
szapataa 1:bf54a30a2b14 227 lcd.locate(11,1);
szapataa 1:bf54a30a2b14 228 lcd.printf("%d", kdnum);
szapataa 1:bf54a30a2b14 229 }
szapataa 1:bf54a30a2b14 230 }
szapataa 1:bf54a30a2b14 231 }
szapataa 1:bf54a30a2b14 232 }
szapataa 1:bf54a30a2b14 233
szapataa 1:bf54a30a2b14 234
szapataa 1:bf54a30a2b14 235 /*if (!button2)
szapataa 1:bf54a30a2b14 236 {
szapataa 1:bf54a30a2b14 237 if(flagt==0)
szapataa 1:bf54a30a2b14 238 {
lcorralesc1 0:3883458d6df5 239 //t.reset();
lcorralesc1 0:3883458d6df5 240 t.start();
lcorralesc1 0:3883458d6df5 241 flagt=1;
lcorralesc1 0:3883458d6df5 242 }
lcorralesc1 0:3883458d6df5 243
lcorralesc1 0:3883458d6df5 244 led1 =!led1;
lcorralesc1 0:3883458d6df5 245 wait(0.50);
lcorralesc1 0:3883458d6df5 246
lcorralesc1 0:3883458d6df5 247 if(!button2)
lcorralesc1 0:3883458d6df5 248 {
lcorralesc1 0:3883458d6df5 249 if(t.read()>10)
lcorralesc1 0:3883458d6df5 250 {
lcorralesc1 0:3883458d6df5 251 incremento=100;
lcorralesc1 0:3883458d6df5 252 }
lcorralesc1 0:3883458d6df5 253 else if(t.read()>5.5)
lcorralesc1 0:3883458d6df5 254 {
lcorralesc1 0:3883458d6df5 255 incremento=10;
lcorralesc1 0:3883458d6df5 256 }
lcorralesc1 0:3883458d6df5 257
lcorralesc1 0:3883458d6df5 258 led2 =!led2;
lcorralesc1 0:3883458d6df5 259 if(pos==1)
lcorralesc1 0:3883458d6df5 260 {
lcorralesc1 0:3883458d6df5 261 if(spnum-incremento<0)
lcorralesc1 0:3883458d6df5 262 {
lcorralesc1 0:3883458d6df5 263 //No ocurre nada
lcorralesc1 0:3883458d6df5 264 }
lcorralesc1 0:3883458d6df5 265 else
lcorralesc1 0:3883458d6df5 266 {
lcorralesc1 0:3883458d6df5 267 spnum-=incremento;
lcorralesc1 0:3883458d6df5 268 lcd.locate(3,0);
lcorralesc1 0:3883458d6df5 269 lcd.printf(" ");
lcorralesc1 0:3883458d6df5 270 lcd.locate(3,0);
lcorralesc1 0:3883458d6df5 271 lcd.printf("%d", spnum);
lcorralesc1 0:3883458d6df5 272 }
lcorralesc1 0:3883458d6df5 273 }
lcorralesc1 0:3883458d6df5 274 else if(pos==2)
lcorralesc1 0:3883458d6df5 275 {
lcorralesc1 0:3883458d6df5 276 if(kpnum-incremento<0)
lcorralesc1 0:3883458d6df5 277 {
lcorralesc1 0:3883458d6df5 278 //No ocurre nada
lcorralesc1 0:3883458d6df5 279 }
lcorralesc1 0:3883458d6df5 280 else
lcorralesc1 0:3883458d6df5 281 {
lcorralesc1 0:3883458d6df5 282 kpnum-=incremento;
lcorralesc1 0:3883458d6df5 283 lcd.locate(11,0);
lcorralesc1 0:3883458d6df5 284 lcd.printf(" ");
lcorralesc1 0:3883458d6df5 285 lcd.locate(11,0);
lcorralesc1 0:3883458d6df5 286 lcd.printf("%d", kpnum);
lcorralesc1 0:3883458d6df5 287 }
lcorralesc1 0:3883458d6df5 288 }
lcorralesc1 0:3883458d6df5 289 else if(pos==3)
lcorralesc1 0:3883458d6df5 290 {
lcorralesc1 0:3883458d6df5 291 if(kinum-incremento<0)
lcorralesc1 0:3883458d6df5 292 {
lcorralesc1 0:3883458d6df5 293 //No ocurre nada
lcorralesc1 0:3883458d6df5 294 }
lcorralesc1 0:3883458d6df5 295 else
lcorralesc1 0:3883458d6df5 296 {
lcorralesc1 0:3883458d6df5 297 kinum-=incremento;
lcorralesc1 0:3883458d6df5 298 lcd.locate(3,1);
lcorralesc1 0:3883458d6df5 299 lcd.printf(" ");
lcorralesc1 0:3883458d6df5 300 lcd.locate(3,1);
lcorralesc1 0:3883458d6df5 301 lcd.printf("%d", kinum);
lcorralesc1 0:3883458d6df5 302 }
lcorralesc1 0:3883458d6df5 303 }
lcorralesc1 0:3883458d6df5 304 else if(pos==4)
lcorralesc1 0:3883458d6df5 305 {
lcorralesc1 0:3883458d6df5 306 if(kdnum-incremento<0)
lcorralesc1 0:3883458d6df5 307 {
lcorralesc1 0:3883458d6df5 308 //No ocurre nada
lcorralesc1 0:3883458d6df5 309 }
lcorralesc1 0:3883458d6df5 310 else
lcorralesc1 0:3883458d6df5 311 {
lcorralesc1 0:3883458d6df5 312 kdnum-=incremento;
lcorralesc1 0:3883458d6df5 313 lcd.locate(11,1);
lcorralesc1 0:3883458d6df5 314 lcd.printf(" ");
lcorralesc1 0:3883458d6df5 315 lcd.locate(11,1);
lcorralesc1 0:3883458d6df5 316 lcd.printf("%d", kdnum);
lcorralesc1 0:3883458d6df5 317 }
lcorralesc1 0:3883458d6df5 318 }
lcorralesc1 0:3883458d6df5 319 }
szapataa 1:bf54a30a2b14 320 }*/
lcorralesc1 0:3883458d6df5 321
lcorralesc1 0:3883458d6df5 322 if (!button3)
lcorralesc1 0:3883458d6df5 323 {
lcorralesc1 0:3883458d6df5 324 led3 =!led3;
lcorralesc1 0:3883458d6df5 325 if(pos==4)
lcorralesc1 0:3883458d6df5 326 {
lcorralesc1 0:3883458d6df5 327 pos=1;
lcorralesc1 0:3883458d6df5 328 lcd.locate(3,0);
lcorralesc1 0:3883458d6df5 329 lcd.printf("%d", spnum);
lcorralesc1 0:3883458d6df5 330 }
lcorralesc1 0:3883458d6df5 331 else if (pos==1)
lcorralesc1 0:3883458d6df5 332 {
lcorralesc1 0:3883458d6df5 333 pos++;
lcorralesc1 0:3883458d6df5 334 lcd.locate(11,0);
lcorralesc1 0:3883458d6df5 335 lcd.printf("%d", kpnum);
lcorralesc1 0:3883458d6df5 336 }
lcorralesc1 0:3883458d6df5 337 else if(pos==2)
lcorralesc1 0:3883458d6df5 338 {
lcorralesc1 0:3883458d6df5 339 pos++;
lcorralesc1 0:3883458d6df5 340 lcd.locate(3,1);
lcorralesc1 0:3883458d6df5 341 lcd.printf("%d", kinum);
lcorralesc1 0:3883458d6df5 342 }
lcorralesc1 0:3883458d6df5 343 else if(pos==3)
lcorralesc1 0:3883458d6df5 344 {
lcorralesc1 0:3883458d6df5 345 pos++;
lcorralesc1 0:3883458d6df5 346 lcd.locate(11,1);
lcorralesc1 0:3883458d6df5 347 lcd.printf("%d", kdnum);
lcorralesc1 0:3883458d6df5 348 }
lcorralesc1 0:3883458d6df5 349 wait(0.25);
lcorralesc1 0:3883458d6df5 350
lcorralesc1 0:3883458d6df5 351 }
lcorralesc1 0:3883458d6df5 352
lcorralesc1 0:3883458d6df5 353 if (button1 && button2)
lcorralesc1 0:3883458d6df5 354 {
lcorralesc1 0:3883458d6df5 355 flagt=0;
lcorralesc1 0:3883458d6df5 356 t.reset();
lcorralesc1 0:3883458d6df5 357 incremento=1;
lcorralesc1 0:3883458d6df5 358 }
lcorralesc1 0:3883458d6df5 359
lcorralesc1 0:3883458d6df5 360 }
lcorralesc1 0:3883458d6df5 361 }