Alejandro Marin
/
Tarea1procesadores
impresion en LCD con boton de incremento y decremento encada variable en el LCD
main.cpp@0:6c9cb98ad497, 2013-10-16 (annotated)
- Committer:
- amarincan
- Date:
- Wed Oct 16 16:38:18 2013 +0000
- Revision:
- 0:6c9cb98ad497
Tarea1
Who changed what in which revision?
User | Revision | Line number | New 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 | } |