impresion en LCD con boton de incremento y decremento encada variable en el LCD

Dependencies:   TextLCD mbed

Committer:
amarincan
Date:
Wed Oct 16 16:38:18 2013 +0000
Revision:
0:6c9cb98ad497
Tarea1

Who changed what in which revision?

UserRevisionLine numberNew contents of line
amarincan 0:6c9cb98ad497 1 #include "mbed.h"
amarincan 0:6c9cb98ad497 2 #include "DebouncedIn.h"
amarincan 0:6c9cb98ad497 3 #include "TextLCD.h"
amarincan 0:6c9cb98ad497 4
amarincan 0:6c9cb98ad497 5 TextLCD lcd(PTB10, PTB11, PTE2, PTE3, PTE4, PTE5); // rs, e, d4-d7
amarincan 0:6c9cb98ad497 6 int i,Sp=0,Kp,Ki,Kd;
amarincan 0:6c9cb98ad497 7 DigitalOut l1(LED1);
amarincan 0:6c9cb98ad497 8 DigitalOut l2(LED2);
amarincan 0:6c9cb98ad497 9 int main()
amarincan 0:6c9cb98ad497 10 {
amarincan 0:6c9cb98ad497 11 DebouncedIn button1(PTC12);
amarincan 0:6c9cb98ad497 12 DebouncedIn button2(PTC13);
amarincan 0:6c9cb98ad497 13 DebouncedIn button3(PTC16);
amarincan 0:6c9cb98ad497 14 lcd.writeCommand(0x0E);
amarincan 0:6c9cb98ad497 15 lcd.printf("Sp= Kp=");
amarincan 0:6c9cb98ad497 16 lcd.locate(0,1);
amarincan 0:6c9cb98ad497 17 lcd.printf("Ki= Kd=");
amarincan 0:6c9cb98ad497 18 lcd.locate(2,0);
amarincan 0:6c9cb98ad497 19 lcd.printf("=");
amarincan 0:6c9cb98ad497 20
amarincan 0:6c9cb98ad497 21 while(1) {
amarincan 0:6c9cb98ad497 22
amarincan 0:6c9cb98ad497 23 if(button1.falling()) {
amarincan 0:6c9cb98ad497 24
amarincan 0:6c9cb98ad497 25 switch(i) {
amarincan 0:6c9cb98ad497 26 case 0:
amarincan 0:6c9cb98ad497 27 lcd.locate(2,0);
amarincan 0:6c9cb98ad497 28 lcd.printf("= ");
amarincan 0:6c9cb98ad497 29 lcd.locate(3,0);
amarincan 0:6c9cb98ad497 30 lcd.printf("%d",++Sp);
amarincan 0:6c9cb98ad497 31
amarincan 0:6c9cb98ad497 32 break;
amarincan 0:6c9cb98ad497 33 case 1:
amarincan 0:6c9cb98ad497 34 lcd.locate(10,0);
amarincan 0:6c9cb98ad497 35 lcd.printf("= ");
amarincan 0:6c9cb98ad497 36 lcd.locate(11,0);
amarincan 0:6c9cb98ad497 37 lcd.printf("%d",++Kp);
amarincan 0:6c9cb98ad497 38 break;
amarincan 0:6c9cb98ad497 39 case 2:
amarincan 0:6c9cb98ad497 40
amarincan 0:6c9cb98ad497 41 lcd.locate(2,1);
amarincan 0:6c9cb98ad497 42 lcd.printf("= ");
amarincan 0:6c9cb98ad497 43 lcd.locate(3,1);
amarincan 0:6c9cb98ad497 44 lcd.printf("%d",++Ki);
amarincan 0:6c9cb98ad497 45 break;
amarincan 0:6c9cb98ad497 46 case 3:
amarincan 0:6c9cb98ad497 47 lcd.locate(10,1);
amarincan 0:6c9cb98ad497 48 lcd.printf("= ");
amarincan 0:6c9cb98ad497 49 lcd.locate(11,1);
amarincan 0:6c9cb98ad497 50 lcd.printf("%d",++Kd);
amarincan 0:6c9cb98ad497 51 break;
amarincan 0:6c9cb98ad497 52 }
amarincan 0:6c9cb98ad497 53 }
amarincan 0:6c9cb98ad497 54 if(button2.falling()) {
amarincan 0:6c9cb98ad497 55 switch(i) {
amarincan 0:6c9cb98ad497 56 case 0:
amarincan 0:6c9cb98ad497 57 if(Sp<0) {
amarincan 0:6c9cb98ad497 58 Sp=0;
amarincan 0:6c9cb98ad497 59 }
amarincan 0:6c9cb98ad497 60 lcd.locate(2,0);
amarincan 0:6c9cb98ad497 61 lcd.printf("= ");
amarincan 0:6c9cb98ad497 62 lcd.locate(3,0);
amarincan 0:6c9cb98ad497 63 lcd.printf("%d",Sp--);
amarincan 0:6c9cb98ad497 64 break;
amarincan 0:6c9cb98ad497 65 case 1:
amarincan 0:6c9cb98ad497 66 if(Kp<0) {
amarincan 0:6c9cb98ad497 67 Kp=0;
amarincan 0:6c9cb98ad497 68 }
amarincan 0:6c9cb98ad497 69 lcd.locate(10,0);
amarincan 0:6c9cb98ad497 70 lcd.printf("= ");
amarincan 0:6c9cb98ad497 71 lcd.locate(11,0);
amarincan 0:6c9cb98ad497 72 lcd.printf("%d",Kp--);
amarincan 0:6c9cb98ad497 73 break;
amarincan 0:6c9cb98ad497 74 case 2:
amarincan 0:6c9cb98ad497 75
amarincan 0:6c9cb98ad497 76 if(Ki<0) {
amarincan 0:6c9cb98ad497 77 Ki=0;
amarincan 0:6c9cb98ad497 78 }
amarincan 0:6c9cb98ad497 79 lcd.locate(2,1);
amarincan 0:6c9cb98ad497 80 lcd.printf("= ");
amarincan 0:6c9cb98ad497 81 lcd.locate(3,1);
amarincan 0:6c9cb98ad497 82 lcd.printf("%d",Ki--);
amarincan 0:6c9cb98ad497 83 break;
amarincan 0:6c9cb98ad497 84 case 3:
amarincan 0:6c9cb98ad497 85
amarincan 0:6c9cb98ad497 86 if(Kd<0) {
amarincan 0:6c9cb98ad497 87 Kd=0;
amarincan 0:6c9cb98ad497 88 }
amarincan 0:6c9cb98ad497 89 lcd.locate(10,1);
amarincan 0:6c9cb98ad497 90 lcd.printf("= ");
amarincan 0:6c9cb98ad497 91 lcd.locate(11,1);
amarincan 0:6c9cb98ad497 92 lcd.printf("%d",Kd--);
amarincan 0:6c9cb98ad497 93 break;
amarincan 0:6c9cb98ad497 94 }
amarincan 0:6c9cb98ad497 95 }
amarincan 0:6c9cb98ad497 96 if(button3.falling()) {
amarincan 0:6c9cb98ad497 97 i++;
amarincan 0:6c9cb98ad497 98 if(i>3) {
amarincan 0:6c9cb98ad497 99 i=0;
amarincan 0:6c9cb98ad497 100 }
amarincan 0:6c9cb98ad497 101 switch (i) {
amarincan 0:6c9cb98ad497 102 case 0:
amarincan 0:6c9cb98ad497 103 lcd.locate(2,0);
amarincan 0:6c9cb98ad497 104 lcd.printf("=");
amarincan 0:6c9cb98ad497 105 break;
amarincan 0:6c9cb98ad497 106 case 1:
amarincan 0:6c9cb98ad497 107 lcd.locate(10,0);
amarincan 0:6c9cb98ad497 108 lcd.printf("=");
amarincan 0:6c9cb98ad497 109 break;
amarincan 0:6c9cb98ad497 110 case 2:
amarincan 0:6c9cb98ad497 111 lcd.locate(2,1);
amarincan 0:6c9cb98ad497 112 lcd.printf("=");
amarincan 0:6c9cb98ad497 113 break;
amarincan 0:6c9cb98ad497 114 case 3:
amarincan 0:6c9cb98ad497 115 lcd.locate(10,1);
amarincan 0:6c9cb98ad497 116 lcd.printf("=");
amarincan 0:6c9cb98ad497 117 break;
amarincan 0:6c9cb98ad497 118 }
amarincan 0:6c9cb98ad497 119 }
amarincan 0:6c9cb98ad497 120 }
amarincan 0:6c9cb98ad497 121 }