Jung Hun Kim
/
PublishingLab04
ECE 4180 Lab 04 - Jung Hun Kim
main.cpp@0:f8d011978c8d, 2014-10-21 (annotated)
- Committer:
- shyguykjh
- Date:
- Tue Oct 21 17:19:40 2014 +0000
- Revision:
- 0:f8d011978c8d
ECE 4180 Lab04 Jung Hun Kim(10-21-2014);
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
shyguykjh | 0:f8d011978c8d | 1 | #include "mbed.h" |
shyguykjh | 0:f8d011978c8d | 2 | #include "uLCD_4DGL.h" |
shyguykjh | 0:f8d011978c8d | 3 | #include <iostream> |
shyguykjh | 0:f8d011978c8d | 4 | #include <math.h> |
shyguykjh | 0:f8d011978c8d | 5 | #include <cmath> |
shyguykjh | 0:f8d011978c8d | 6 | #include <string> |
shyguykjh | 0:f8d011978c8d | 7 | #include <cstring> |
shyguykjh | 0:f8d011978c8d | 8 | #include <list> |
shyguykjh | 0:f8d011978c8d | 9 | #include <vector> |
shyguykjh | 0:f8d011978c8d | 10 | #include <mpr121.h> |
shyguykjh | 0:f8d011978c8d | 11 | Serial pc(USBTX, USBRX); |
shyguykjh | 0:f8d011978c8d | 12 | using namespace std; |
shyguykjh | 0:f8d011978c8d | 13 | // |
shyguykjh | 0:f8d011978c8d | 14 | uLCD_4DGL uLCD(p13, p14, p11); |
shyguykjh | 0:f8d011978c8d | 15 | InterruptIn interrupt(p26); |
shyguykjh | 0:f8d011978c8d | 16 | InterruptIn interrupt2(p25); |
shyguykjh | 0:f8d011978c8d | 17 | I2C i2c(p9, p10); |
shyguykjh | 0:f8d011978c8d | 18 | I2C i2c2(p28, p27); |
shyguykjh | 0:f8d011978c8d | 19 | // |
shyguykjh | 0:f8d011978c8d | 20 | Mpr121 numpad(&i2c, Mpr121::ADD_VSS); |
shyguykjh | 0:f8d011978c8d | 21 | Mpr121 operpad(&i2c2, Mpr121::ADD_VSS); |
shyguykjh | 0:f8d011978c8d | 22 | |
shyguykjh | 0:f8d011978c8d | 23 | int fallInterrupt() |
shyguykjh | 0:f8d011978c8d | 24 | { |
shyguykjh | 0:f8d011978c8d | 25 | int num = numpad.read(0x00); |
shyguykjh | 0:f8d011978c8d | 26 | num +=numpad.read(0x01)<<8; |
shyguykjh | 0:f8d011978c8d | 27 | int i=0; |
shyguykjh | 0:f8d011978c8d | 28 | i = 0; |
shyguykjh | 0:f8d011978c8d | 29 | for (i=0; i<12; i++) { |
shyguykjh | 0:f8d011978c8d | 30 | if (num & (1<<i)) |
shyguykjh | 0:f8d011978c8d | 31 | break; |
shyguykjh | 0:f8d011978c8d | 32 | } |
shyguykjh | 0:f8d011978c8d | 33 | if(i == 0) { |
shyguykjh | 0:f8d011978c8d | 34 | uLCD.text_width(2); //4X size text |
shyguykjh | 0:f8d011978c8d | 35 | uLCD.text_height(2); |
shyguykjh | 0:f8d011978c8d | 36 | uLCD.color(BLUE); |
shyguykjh | 0:f8d011978c8d | 37 | uLCD.printf("%d", i); |
shyguykjh | 0:f8d011978c8d | 38 | } |
shyguykjh | 0:f8d011978c8d | 39 | else if (i == 1) { |
shyguykjh | 0:f8d011978c8d | 40 | uLCD.text_width(2); //4X size text |
shyguykjh | 0:f8d011978c8d | 41 | uLCD.text_height(2); |
shyguykjh | 0:f8d011978c8d | 42 | uLCD.color(BLUE); |
shyguykjh | 0:f8d011978c8d | 43 | uLCD.printf("%d", i); |
shyguykjh | 0:f8d011978c8d | 44 | } |
shyguykjh | 0:f8d011978c8d | 45 | else if (i == 2) { |
shyguykjh | 0:f8d011978c8d | 46 | uLCD.text_width(2); //4X size text |
shyguykjh | 0:f8d011978c8d | 47 | uLCD.text_height(2); |
shyguykjh | 0:f8d011978c8d | 48 | uLCD.color(BLUE); |
shyguykjh | 0:f8d011978c8d | 49 | uLCD.printf("%d", i); |
shyguykjh | 0:f8d011978c8d | 50 | } |
shyguykjh | 0:f8d011978c8d | 51 | else if (i == 3) { |
shyguykjh | 0:f8d011978c8d | 52 | uLCD.text_width(2); //4X size text |
shyguykjh | 0:f8d011978c8d | 53 | uLCD.text_height(2); |
shyguykjh | 0:f8d011978c8d | 54 | uLCD.color(BLUE); |
shyguykjh | 0:f8d011978c8d | 55 | uLCD.printf("%d", i); |
shyguykjh | 0:f8d011978c8d | 56 | } |
shyguykjh | 0:f8d011978c8d | 57 | else if (i == 4) { |
shyguykjh | 0:f8d011978c8d | 58 | uLCD.text_width(2); //4X size text |
shyguykjh | 0:f8d011978c8d | 59 | uLCD.text_height(2); |
shyguykjh | 0:f8d011978c8d | 60 | uLCD.color(BLUE); |
shyguykjh | 0:f8d011978c8d | 61 | uLCD.printf("%d", i); |
shyguykjh | 0:f8d011978c8d | 62 | } |
shyguykjh | 0:f8d011978c8d | 63 | else if (i == 5) { |
shyguykjh | 0:f8d011978c8d | 64 | uLCD.text_width(2); //4X size text |
shyguykjh | 0:f8d011978c8d | 65 | uLCD.text_height(2); |
shyguykjh | 0:f8d011978c8d | 66 | uLCD.color(BLUE); |
shyguykjh | 0:f8d011978c8d | 67 | uLCD.printf("%d", i); |
shyguykjh | 0:f8d011978c8d | 68 | } |
shyguykjh | 0:f8d011978c8d | 69 | else if (i == 6) { |
shyguykjh | 0:f8d011978c8d | 70 | uLCD.text_width(2); //4X size text |
shyguykjh | 0:f8d011978c8d | 71 | uLCD.text_height(2); |
shyguykjh | 0:f8d011978c8d | 72 | uLCD.color(BLUE); |
shyguykjh | 0:f8d011978c8d | 73 | uLCD.printf("%d", i); |
shyguykjh | 0:f8d011978c8d | 74 | } |
shyguykjh | 0:f8d011978c8d | 75 | else if (i == 7) { |
shyguykjh | 0:f8d011978c8d | 76 | uLCD.text_width(2); //4X size text |
shyguykjh | 0:f8d011978c8d | 77 | uLCD.text_height(2); |
shyguykjh | 0:f8d011978c8d | 78 | uLCD.color(BLUE); |
shyguykjh | 0:f8d011978c8d | 79 | uLCD.printf("%d", i); |
shyguykjh | 0:f8d011978c8d | 80 | } |
shyguykjh | 0:f8d011978c8d | 81 | else if (i == 8) { |
shyguykjh | 0:f8d011978c8d | 82 | uLCD.text_width(2); //4X size text |
shyguykjh | 0:f8d011978c8d | 83 | uLCD.text_height(2); |
shyguykjh | 0:f8d011978c8d | 84 | uLCD.color(BLUE); |
shyguykjh | 0:f8d011978c8d | 85 | uLCD.printf("%d", i); |
shyguykjh | 0:f8d011978c8d | 86 | } |
shyguykjh | 0:f8d011978c8d | 87 | else if (i == 9) { |
shyguykjh | 0:f8d011978c8d | 88 | uLCD.text_width(2); //4X size text |
shyguykjh | 0:f8d011978c8d | 89 | uLCD.text_height(2); |
shyguykjh | 0:f8d011978c8d | 90 | uLCD.color(BLUE); |
shyguykjh | 0:f8d011978c8d | 91 | uLCD.printf("%d", i); |
shyguykjh | 0:f8d011978c8d | 92 | } |
shyguykjh | 0:f8d011978c8d | 93 | else if (i == 10) { |
shyguykjh | 0:f8d011978c8d | 94 | uLCD.text_width(2); //4X size text |
shyguykjh | 0:f8d011978c8d | 95 | uLCD.text_height(2); |
shyguykjh | 0:f8d011978c8d | 96 | uLCD.color(BLUE); |
shyguykjh | 0:f8d011978c8d | 97 | uLCD.printf("."); |
shyguykjh | 0:f8d011978c8d | 98 | } |
shyguykjh | 0:f8d011978c8d | 99 | else if (i == 11) { |
shyguykjh | 0:f8d011978c8d | 100 | uLCD.text_width(2); //4X size text |
shyguykjh | 0:f8d011978c8d | 101 | uLCD.text_height(2); |
shyguykjh | 0:f8d011978c8d | 102 | uLCD.color(BLUE); |
shyguykjh | 0:f8d011978c8d | 103 | uLCD.printf("-"); |
shyguykjh | 0:f8d011978c8d | 104 | } |
shyguykjh | 0:f8d011978c8d | 105 | // pc.printf("%d", i); |
shyguykjh | 0:f8d011978c8d | 106 | return i; |
shyguykjh | 0:f8d011978c8d | 107 | } |
shyguykjh | 0:f8d011978c8d | 108 | |
shyguykjh | 0:f8d011978c8d | 109 | int fallInterrupt2() |
shyguykjh | 0:f8d011978c8d | 110 | { |
shyguykjh | 0:f8d011978c8d | 111 | int num = operpad.read(0x00); |
shyguykjh | 0:f8d011978c8d | 112 | num +=operpad.read(0x01)<<8; |
shyguykjh | 0:f8d011978c8d | 113 | int i =0; |
shyguykjh | 0:f8d011978c8d | 114 | i = 0; |
shyguykjh | 0:f8d011978c8d | 115 | for (i=0; i<12; i++) { |
shyguykjh | 0:f8d011978c8d | 116 | if (num & (1<<i)) |
shyguykjh | 0:f8d011978c8d | 117 | break; |
shyguykjh | 0:f8d011978c8d | 118 | } |
shyguykjh | 0:f8d011978c8d | 119 | if(i == 1) { |
shyguykjh | 0:f8d011978c8d | 120 | uLCD.printf("+"); |
shyguykjh | 0:f8d011978c8d | 121 | } |
shyguykjh | 0:f8d011978c8d | 122 | else if (i == 2) { |
shyguykjh | 0:f8d011978c8d | 123 | uLCD.printf("-"); |
shyguykjh | 0:f8d011978c8d | 124 | } |
shyguykjh | 0:f8d011978c8d | 125 | else if (i == 3) { |
shyguykjh | 0:f8d011978c8d | 126 | uLCD.printf("*"); |
shyguykjh | 0:f8d011978c8d | 127 | } |
shyguykjh | 0:f8d011978c8d | 128 | else if (i == 4) { |
shyguykjh | 0:f8d011978c8d | 129 | uLCD.printf("/"); |
shyguykjh | 0:f8d011978c8d | 130 | } |
shyguykjh | 0:f8d011978c8d | 131 | // else if (i == 4) { |
shyguykjh | 0:f8d011978c8d | 132 | // uLCD.printf("/"); |
shyguykjh | 0:f8d011978c8d | 133 | // } |
shyguykjh | 0:f8d011978c8d | 134 | else if (i == 5) { |
shyguykjh | 0:f8d011978c8d | 135 | uLCD.color(RED); |
shyguykjh | 0:f8d011978c8d | 136 | uLCD.printf("\n="); |
shyguykjh | 0:f8d011978c8d | 137 | } |
shyguykjh | 0:f8d011978c8d | 138 | else if (i == 6) { |
shyguykjh | 0:f8d011978c8d | 139 | uLCD.cls(); |
shyguykjh | 0:f8d011978c8d | 140 | } |
shyguykjh | 0:f8d011978c8d | 141 | return i; |
shyguykjh | 0:f8d011978c8d | 142 | } |
shyguykjh | 0:f8d011978c8d | 143 | |
shyguykjh | 0:f8d011978c8d | 144 | int main() { |
shyguykjh | 0:f8d011978c8d | 145 | while (1) { |
shyguykjh | 0:f8d011978c8d | 146 | // C; |
shyguykjh | 0:f8d011978c8d | 147 | // interrupt2.fall(&fallInterrupt2); |
shyguykjh | 0:f8d011978c8d | 148 | // interrupt.fall(&fallInterrupt); |
shyguykjh | 0:f8d011978c8d | 149 | // interrupt.mode(PullUp); |
shyguykjh | 0:f8d011978c8d | 150 | // interrupt2.mode(PullUp); |
shyguykjh | 0:f8d011978c8d | 151 | float temp = 0; |
shyguykjh | 0:f8d011978c8d | 152 | float temp1 = 0; |
shyguykjh | 0:f8d011978c8d | 153 | int temp2 = 0; |
shyguykjh | 0:f8d011978c8d | 154 | float temp3 = 0; |
shyguykjh | 0:f8d011978c8d | 155 | int temp4 = 0; |
shyguykjh | 0:f8d011978c8d | 156 | float temp5 = 0; |
shyguykjh | 0:f8d011978c8d | 157 | int temp6 = 0; |
shyguykjh | 0:f8d011978c8d | 158 | int count = 1; |
shyguykjh | 0:f8d011978c8d | 159 | int count2 = 1; |
shyguykjh | 0:f8d011978c8d | 160 | int count3 = 1; |
shyguykjh | 0:f8d011978c8d | 161 | int fans = 10; |
shyguykjh | 0:f8d011978c8d | 162 | int fans2 = 10; |
shyguykjh | 0:f8d011978c8d | 163 | int fans3 = 10; |
shyguykjh | 0:f8d011978c8d | 164 | int negate = 0; |
shyguykjh | 0:f8d011978c8d | 165 | while (1) { |
shyguykjh | 0:f8d011978c8d | 166 | int oper1 = operpad.read(0x00); |
shyguykjh | 0:f8d011978c8d | 167 | oper1 +=operpad.read(0x01)<<8; |
shyguykjh | 0:f8d011978c8d | 168 | int num1 = numpad.read(0x00); |
shyguykjh | 0:f8d011978c8d | 169 | num1 +=numpad.read(0x01)<<8; |
shyguykjh | 0:f8d011978c8d | 170 | // temp2 = fallInterrupt2(); |
shyguykjh | 0:f8d011978c8d | 171 | // wait(0.1); |
shyguykjh | 0:f8d011978c8d | 172 | if (oper1){ |
shyguykjh | 0:f8d011978c8d | 173 | // wait(0.3); |
shyguykjh | 0:f8d011978c8d | 174 | int ope = fallInterrupt2(); |
shyguykjh | 0:f8d011978c8d | 175 | wait(0.2); |
shyguykjh | 0:f8d011978c8d | 176 | if (ope == 0) { |
shyguykjh | 0:f8d011978c8d | 177 | uLCD.cls(); |
shyguykjh | 0:f8d011978c8d | 178 | uLCD.printf("Cleared"); |
shyguykjh | 0:f8d011978c8d | 179 | wait(0.5); |
shyguykjh | 0:f8d011978c8d | 180 | uLCD.cls(); |
shyguykjh | 0:f8d011978c8d | 181 | count = 1; |
shyguykjh | 0:f8d011978c8d | 182 | temp1 = 0; |
shyguykjh | 0:f8d011978c8d | 183 | temp2 = 0; |
shyguykjh | 0:f8d011978c8d | 184 | fans = 10; |
shyguykjh | 0:f8d011978c8d | 185 | } |
shyguykjh | 0:f8d011978c8d | 186 | else{ |
shyguykjh | 0:f8d011978c8d | 187 | temp2 = ope; |
shyguykjh | 0:f8d011978c8d | 188 | break; |
shyguykjh | 0:f8d011978c8d | 189 | } |
shyguykjh | 0:f8d011978c8d | 190 | } |
shyguykjh | 0:f8d011978c8d | 191 | else if (num1){ |
shyguykjh | 0:f8d011978c8d | 192 | int ans = fallInterrupt(); |
shyguykjh | 0:f8d011978c8d | 193 | wait(0.2); |
shyguykjh | 0:f8d011978c8d | 194 | if (ans == 10) { |
shyguykjh | 0:f8d011978c8d | 195 | count = count +1; |
shyguykjh | 0:f8d011978c8d | 196 | // pc.printf("hi I am in ans==10"); |
shyguykjh | 0:f8d011978c8d | 197 | // pc.printf("hi count from ans ==10 is %d\n", count); |
shyguykjh | 0:f8d011978c8d | 198 | } |
shyguykjh | 0:f8d011978c8d | 199 | else if (ans == 11) { |
shyguykjh | 0:f8d011978c8d | 200 | negate = 1; |
shyguykjh | 0:f8d011978c8d | 201 | } |
shyguykjh | 0:f8d011978c8d | 202 | else { |
shyguykjh | 0:f8d011978c8d | 203 | if (count == 2) { |
shyguykjh | 0:f8d011978c8d | 204 | if (negate == 1){ |
shyguykjh | 0:f8d011978c8d | 205 | // pc.printf("ans = %d\n", ans); |
shyguykjh | 0:f8d011978c8d | 206 | // pc.printf("count = %d\n", count); |
shyguykjh | 0:f8d011978c8d | 207 | // pc.printf("temp1 before = %0.2f\n", temp1); |
shyguykjh | 0:f8d011978c8d | 208 | temp1 = temp1 *10; |
shyguykjh | 0:f8d011978c8d | 209 | temp1 = (temp1 - ans)/10; |
shyguykjh | 0:f8d011978c8d | 210 | temp1 = temp1; |
shyguykjh | 0:f8d011978c8d | 211 | // pc.printf("temp1 after = %0.2f\n", temp1); |
shyguykjh | 0:f8d011978c8d | 212 | count = count +1; |
shyguykjh | 0:f8d011978c8d | 213 | fans = fans * 10; |
shyguykjh | 0:f8d011978c8d | 214 | } |
shyguykjh | 0:f8d011978c8d | 215 | else{ |
shyguykjh | 0:f8d011978c8d | 216 | temp1 = temp1 *10; |
shyguykjh | 0:f8d011978c8d | 217 | temp1 = (temp1 + ans)/10; |
shyguykjh | 0:f8d011978c8d | 218 | // pc.printf("temp1 after = %0.2f\n", temp1); |
shyguykjh | 0:f8d011978c8d | 219 | count = count +1; |
shyguykjh | 0:f8d011978c8d | 220 | fans = fans * 10; |
shyguykjh | 0:f8d011978c8d | 221 | } |
shyguykjh | 0:f8d011978c8d | 222 | } |
shyguykjh | 0:f8d011978c8d | 223 | // wait(0.3); |
shyguykjh | 0:f8d011978c8d | 224 | else if (count > 2) { |
shyguykjh | 0:f8d011978c8d | 225 | if (negate == 1){ |
shyguykjh | 0:f8d011978c8d | 226 | temp1 = temp1 * fans; |
shyguykjh | 0:f8d011978c8d | 227 | temp1 = temp1 - ans; |
shyguykjh | 0:f8d011978c8d | 228 | // pc.printf("ans = %d\n", ans); |
shyguykjh | 0:f8d011978c8d | 229 | temp1 = temp1/fans; |
shyguykjh | 0:f8d011978c8d | 230 | temp1 = temp1; |
shyguykjh | 0:f8d011978c8d | 231 | // pc.printf("temp1 after = %0.2f\n", temp1); |
shyguykjh | 0:f8d011978c8d | 232 | fans = fans * 10; |
shyguykjh | 0:f8d011978c8d | 233 | } |
shyguykjh | 0:f8d011978c8d | 234 | else{ |
shyguykjh | 0:f8d011978c8d | 235 | temp1 = temp1 * fans; |
shyguykjh | 0:f8d011978c8d | 236 | temp1 = temp1 + ans; |
shyguykjh | 0:f8d011978c8d | 237 | // pc.printf("ans = %d\n", ans); |
shyguykjh | 0:f8d011978c8d | 238 | temp1 = temp1/fans; |
shyguykjh | 0:f8d011978c8d | 239 | // pc.printf("temp1 after = %0.2f\n", temp1); |
shyguykjh | 0:f8d011978c8d | 240 | fans = fans * 10; |
shyguykjh | 0:f8d011978c8d | 241 | } |
shyguykjh | 0:f8d011978c8d | 242 | } |
shyguykjh | 0:f8d011978c8d | 243 | else if(count==1){ |
shyguykjh | 0:f8d011978c8d | 244 | if (negate == 1){ |
shyguykjh | 0:f8d011978c8d | 245 | temp1 = temp1 * 10; |
shyguykjh | 0:f8d011978c8d | 246 | temp1 = temp1 - ans; |
shyguykjh | 0:f8d011978c8d | 247 | temp1 = temp1; |
shyguykjh | 0:f8d011978c8d | 248 | pc.printf("temp1 = %d\n", temp1); |
shyguykjh | 0:f8d011978c8d | 249 | pc.printf("count = %d\n", count); |
shyguykjh | 0:f8d011978c8d | 250 | } |
shyguykjh | 0:f8d011978c8d | 251 | else { |
shyguykjh | 0:f8d011978c8d | 252 | temp1 = temp1 * 10; |
shyguykjh | 0:f8d011978c8d | 253 | temp1 = temp1 + ans; |
shyguykjh | 0:f8d011978c8d | 254 | } |
shyguykjh | 0:f8d011978c8d | 255 | } |
shyguykjh | 0:f8d011978c8d | 256 | // wait(0.3); |
shyguykjh | 0:f8d011978c8d | 257 | } |
shyguykjh | 0:f8d011978c8d | 258 | wait(0.2); |
shyguykjh | 0:f8d011978c8d | 259 | } |
shyguykjh | 0:f8d011978c8d | 260 | } |
shyguykjh | 0:f8d011978c8d | 261 | while (1) { |
shyguykjh | 0:f8d011978c8d | 262 | int oper2 = operpad.read(0x00); |
shyguykjh | 0:f8d011978c8d | 263 | oper2 +=operpad.read(0x01)<<8; |
shyguykjh | 0:f8d011978c8d | 264 | int num2 = numpad.read(0x00); |
shyguykjh | 0:f8d011978c8d | 265 | num2 +=numpad.read(0x01)<<8; |
shyguykjh | 0:f8d011978c8d | 266 | // temp4 = fallInterrupt2(); |
shyguykjh | 0:f8d011978c8d | 267 | // wait(0.1); |
shyguykjh | 0:f8d011978c8d | 268 | if (oper2){ |
shyguykjh | 0:f8d011978c8d | 269 | // wait(0.3); |
shyguykjh | 0:f8d011978c8d | 270 | int ope = fallInterrupt2(); |
shyguykjh | 0:f8d011978c8d | 271 | wait(0.2); |
shyguykjh | 0:f8d011978c8d | 272 | if (ope == 0) { |
shyguykjh | 0:f8d011978c8d | 273 | uLCD.cls(); |
shyguykjh | 0:f8d011978c8d | 274 | uLCD.printf("Cleared"); |
shyguykjh | 0:f8d011978c8d | 275 | wait(0.5); |
shyguykjh | 0:f8d011978c8d | 276 | uLCD.cls(); |
shyguykjh | 0:f8d011978c8d | 277 | count2 = 1; |
shyguykjh | 0:f8d011978c8d | 278 | temp3 = 0; |
shyguykjh | 0:f8d011978c8d | 279 | temp4 = 0; |
shyguykjh | 0:f8d011978c8d | 280 | fans2 = 10; |
shyguykjh | 0:f8d011978c8d | 281 | } |
shyguykjh | 0:f8d011978c8d | 282 | else{ |
shyguykjh | 0:f8d011978c8d | 283 | temp4 = ope; |
shyguykjh | 0:f8d011978c8d | 284 | break; |
shyguykjh | 0:f8d011978c8d | 285 | } |
shyguykjh | 0:f8d011978c8d | 286 | } |
shyguykjh | 0:f8d011978c8d | 287 | else if (num2){ |
shyguykjh | 0:f8d011978c8d | 288 | int ans = fallInterrupt(); |
shyguykjh | 0:f8d011978c8d | 289 | wait(0.2); |
shyguykjh | 0:f8d011978c8d | 290 | if (ans == 10) { |
shyguykjh | 0:f8d011978c8d | 291 | count2 = count2 +1; |
shyguykjh | 0:f8d011978c8d | 292 | // pc.printf("hi I am in ans==10"); |
shyguykjh | 0:f8d011978c8d | 293 | // pc.printf("hi count from ans ==10 is %d\n", count); |
shyguykjh | 0:f8d011978c8d | 294 | } |
shyguykjh | 0:f8d011978c8d | 295 | else { |
shyguykjh | 0:f8d011978c8d | 296 | if (count2 == 2) { |
shyguykjh | 0:f8d011978c8d | 297 | // pc.printf("ans = %d\n", ans); |
shyguykjh | 0:f8d011978c8d | 298 | // pc.printf("count = %d\n", count2); |
shyguykjh | 0:f8d011978c8d | 299 | // pc.printf("temp1 before = %0.2f\n", temp3); |
shyguykjh | 0:f8d011978c8d | 300 | temp3 = temp3 *10; |
shyguykjh | 0:f8d011978c8d | 301 | temp3 = (temp3+ans)/10; |
shyguykjh | 0:f8d011978c8d | 302 | // pc.printf("temp1 after = %0.2f\n", temp3); |
shyguykjh | 0:f8d011978c8d | 303 | count2 = count2 +1; |
shyguykjh | 0:f8d011978c8d | 304 | fans2 = fans2 * 10; |
shyguykjh | 0:f8d011978c8d | 305 | } |
shyguykjh | 0:f8d011978c8d | 306 | // wait(0.3); |
shyguykjh | 0:f8d011978c8d | 307 | else if (count2 > 2) { |
shyguykjh | 0:f8d011978c8d | 308 | temp3 = temp3 * fans2; |
shyguykjh | 0:f8d011978c8d | 309 | temp3 = temp3 + ans; |
shyguykjh | 0:f8d011978c8d | 310 | // pc.printf("ans = %d\n", ans); |
shyguykjh | 0:f8d011978c8d | 311 | temp3 = temp3/fans2; |
shyguykjh | 0:f8d011978c8d | 312 | // pc.printf("temp1 after = %0.2f\n", temp1); |
shyguykjh | 0:f8d011978c8d | 313 | fans2 = fans2 * 10; |
shyguykjh | 0:f8d011978c8d | 314 | } |
shyguykjh | 0:f8d011978c8d | 315 | else if(count2==1){ |
shyguykjh | 0:f8d011978c8d | 316 | temp3 = temp3 * 10; |
shyguykjh | 0:f8d011978c8d | 317 | temp3 = temp3 + ans; |
shyguykjh | 0:f8d011978c8d | 318 | // pc.printf("temp1 = %d\n", temp1); |
shyguykjh | 0:f8d011978c8d | 319 | // pc.printf("count = %d\n", count); |
shyguykjh | 0:f8d011978c8d | 320 | } |
shyguykjh | 0:f8d011978c8d | 321 | } |
shyguykjh | 0:f8d011978c8d | 322 | // wait(0.3); |
shyguykjh | 0:f8d011978c8d | 323 | } |
shyguykjh | 0:f8d011978c8d | 324 | wait(0.2); |
shyguykjh | 0:f8d011978c8d | 325 | } |
shyguykjh | 0:f8d011978c8d | 326 | while (1) { |
shyguykjh | 0:f8d011978c8d | 327 | int oper3 = operpad.read(0x00); |
shyguykjh | 0:f8d011978c8d | 328 | oper3 +=operpad.read(0x01)<<8; |
shyguykjh | 0:f8d011978c8d | 329 | int num3 = numpad.read(0x00); |
shyguykjh | 0:f8d011978c8d | 330 | num3 +=numpad.read(0x01)<<8; |
shyguykjh | 0:f8d011978c8d | 331 | // temp6 = fallInterrupt2(); |
shyguykjh | 0:f8d011978c8d | 332 | // wait(0.1); |
shyguykjh | 0:f8d011978c8d | 333 | if (oper3){ |
shyguykjh | 0:f8d011978c8d | 334 | // wait(0.3); |
shyguykjh | 0:f8d011978c8d | 335 | int ope = fallInterrupt2(); |
shyguykjh | 0:f8d011978c8d | 336 | wait(0.2); |
shyguykjh | 0:f8d011978c8d | 337 | if (ope == 0) { |
shyguykjh | 0:f8d011978c8d | 338 | uLCD.cls(); |
shyguykjh | 0:f8d011978c8d | 339 | uLCD.printf("Cleared"); |
shyguykjh | 0:f8d011978c8d | 340 | wait(0.5); |
shyguykjh | 0:f8d011978c8d | 341 | uLCD.cls(); |
shyguykjh | 0:f8d011978c8d | 342 | count3 = 1; |
shyguykjh | 0:f8d011978c8d | 343 | temp5 = 0; |
shyguykjh | 0:f8d011978c8d | 344 | temp6 = 0; |
shyguykjh | 0:f8d011978c8d | 345 | fans3 = 10; |
shyguykjh | 0:f8d011978c8d | 346 | } |
shyguykjh | 0:f8d011978c8d | 347 | else{ |
shyguykjh | 0:f8d011978c8d | 348 | temp6 = ope; |
shyguykjh | 0:f8d011978c8d | 349 | break; |
shyguykjh | 0:f8d011978c8d | 350 | } |
shyguykjh | 0:f8d011978c8d | 351 | } |
shyguykjh | 0:f8d011978c8d | 352 | else if (num3){ |
shyguykjh | 0:f8d011978c8d | 353 | int ans = fallInterrupt(); |
shyguykjh | 0:f8d011978c8d | 354 | wait(0.2); |
shyguykjh | 0:f8d011978c8d | 355 | if (ans == 10) { |
shyguykjh | 0:f8d011978c8d | 356 | count3 = count3 +1; |
shyguykjh | 0:f8d011978c8d | 357 | // pc.printf("hi I am in ans==10"); |
shyguykjh | 0:f8d011978c8d | 358 | // pc.printf("hi count from ans ==10 is %d\n", count); |
shyguykjh | 0:f8d011978c8d | 359 | } |
shyguykjh | 0:f8d011978c8d | 360 | else { |
shyguykjh | 0:f8d011978c8d | 361 | if (count3 == 2) { |
shyguykjh | 0:f8d011978c8d | 362 | // pc.printf("ans = %d\n", ans); |
shyguykjh | 0:f8d011978c8d | 363 | // pc.printf("count = %d\n", count3); |
shyguykjh | 0:f8d011978c8d | 364 | // pc.printf("temp1 before = %0.2f\n", temp5); |
shyguykjh | 0:f8d011978c8d | 365 | temp5 = temp5 *10; |
shyguykjh | 0:f8d011978c8d | 366 | temp5 = (temp5+ans)/10; |
shyguykjh | 0:f8d011978c8d | 367 | // pc.printf("temp1 after = %0.2f\n", temp5); |
shyguykjh | 0:f8d011978c8d | 368 | count3 = count3 +1; |
shyguykjh | 0:f8d011978c8d | 369 | } |
shyguykjh | 0:f8d011978c8d | 370 | // wait(0.3); |
shyguykjh | 0:f8d011978c8d | 371 | else if (count3 > 2) { |
shyguykjh | 0:f8d011978c8d | 372 | temp5 = temp5 * fans3; |
shyguykjh | 0:f8d011978c8d | 373 | temp5 = temp5 + ans; |
shyguykjh | 0:f8d011978c8d | 374 | // pc.printf("ans = %d\n", ans); |
shyguykjh | 0:f8d011978c8d | 375 | temp5 = temp5/fans3; |
shyguykjh | 0:f8d011978c8d | 376 | // pc.printf("temp1 after = %0.2f\n", temp1); |
shyguykjh | 0:f8d011978c8d | 377 | fans3 = fans3 * 10; |
shyguykjh | 0:f8d011978c8d | 378 | } |
shyguykjh | 0:f8d011978c8d | 379 | else if(count3==1){ |
shyguykjh | 0:f8d011978c8d | 380 | temp5 = temp5 * 10; |
shyguykjh | 0:f8d011978c8d | 381 | temp5 = temp5 + ans; |
shyguykjh | 0:f8d011978c8d | 382 | // pc.printf("temp1 = %d\n", temp1); |
shyguykjh | 0:f8d011978c8d | 383 | // pc.printf("count = %d\n", count); |
shyguykjh | 0:f8d011978c8d | 384 | } |
shyguykjh | 0:f8d011978c8d | 385 | } |
shyguykjh | 0:f8d011978c8d | 386 | // wait(0.3); |
shyguykjh | 0:f8d011978c8d | 387 | } |
shyguykjh | 0:f8d011978c8d | 388 | wait(0.2); |
shyguykjh | 0:f8d011978c8d | 389 | } |
shyguykjh | 0:f8d011978c8d | 390 | if ((temp2 == 1) && (temp4 == 1)){ |
shyguykjh | 0:f8d011978c8d | 391 | temp = temp1 + temp3 + temp5; |
shyguykjh | 0:f8d011978c8d | 392 | pc.printf("temp is %0.2f\n", temp); |
shyguykjh | 0:f8d011978c8d | 393 | } |
shyguykjh | 0:f8d011978c8d | 394 | else if ((temp2 == 1) && (temp4 == 2)){ |
shyguykjh | 0:f8d011978c8d | 395 | temp = temp1 + temp3 - temp5; |
shyguykjh | 0:f8d011978c8d | 396 | } |
shyguykjh | 0:f8d011978c8d | 397 | else if ((temp2 == 1) && (temp4 == 3)){ |
shyguykjh | 0:f8d011978c8d | 398 | temp = temp1 + (temp3 * temp5); |
shyguykjh | 0:f8d011978c8d | 399 | } |
shyguykjh | 0:f8d011978c8d | 400 | else if ((temp2 == 1) && (temp4 == 4)){ |
shyguykjh | 0:f8d011978c8d | 401 | temp = temp1 + (temp3 / temp5); |
shyguykjh | 0:f8d011978c8d | 402 | } |
shyguykjh | 0:f8d011978c8d | 403 | else if ((temp2 == 2) && (temp4 == 1)){ |
shyguykjh | 0:f8d011978c8d | 404 | temp = temp1 - temp3 + temp5; |
shyguykjh | 0:f8d011978c8d | 405 | } |
shyguykjh | 0:f8d011978c8d | 406 | else if ((temp2 == 2) && (temp4 == 2)){ |
shyguykjh | 0:f8d011978c8d | 407 | temp = temp1 - temp3 - temp5; |
shyguykjh | 0:f8d011978c8d | 408 | } |
shyguykjh | 0:f8d011978c8d | 409 | else if ((temp2 == 2) && (temp4 == 3)){ |
shyguykjh | 0:f8d011978c8d | 410 | temp = temp1 - (temp3 * temp5); |
shyguykjh | 0:f8d011978c8d | 411 | } |
shyguykjh | 0:f8d011978c8d | 412 | else if ((temp2 == 2) && (temp4 == 4)){ |
shyguykjh | 0:f8d011978c8d | 413 | temp = temp1 - (temp3 / temp5); |
shyguykjh | 0:f8d011978c8d | 414 | } |
shyguykjh | 0:f8d011978c8d | 415 | else if ((temp2 == 3) && (temp4 == 1)){ |
shyguykjh | 0:f8d011978c8d | 416 | temp = temp1 * temp3 + temp5; |
shyguykjh | 0:f8d011978c8d | 417 | } |
shyguykjh | 0:f8d011978c8d | 418 | else if ((temp2 == 3) && (temp4 == 2)){ |
shyguykjh | 0:f8d011978c8d | 419 | temp = temp1 * temp3 - temp5; |
shyguykjh | 0:f8d011978c8d | 420 | } |
shyguykjh | 0:f8d011978c8d | 421 | else if ((temp2 == 3) && (temp4 == 3)){ |
shyguykjh | 0:f8d011978c8d | 422 | temp = temp1 * temp3 * temp5; |
shyguykjh | 0:f8d011978c8d | 423 | } |
shyguykjh | 0:f8d011978c8d | 424 | else if ((temp2 == 3) && (temp4 == 4)){ |
shyguykjh | 0:f8d011978c8d | 425 | temp = temp1 * temp3 / temp5; |
shyguykjh | 0:f8d011978c8d | 426 | } |
shyguykjh | 0:f8d011978c8d | 427 | else if ((temp2 == 4) && (temp4 == 1)){ |
shyguykjh | 0:f8d011978c8d | 428 | temp = temp1 / temp3 + temp5; |
shyguykjh | 0:f8d011978c8d | 429 | } |
shyguykjh | 0:f8d011978c8d | 430 | else if ((temp2 == 4) && (temp4 == 2)){ |
shyguykjh | 0:f8d011978c8d | 431 | temp = temp1 / temp3 - temp5; |
shyguykjh | 0:f8d011978c8d | 432 | } |
shyguykjh | 0:f8d011978c8d | 433 | else if ((temp2 == 4) && (temp4 == 3)){ |
shyguykjh | 0:f8d011978c8d | 434 | temp = temp1 / temp3 * temp5; |
shyguykjh | 0:f8d011978c8d | 435 | } |
shyguykjh | 0:f8d011978c8d | 436 | else if ((temp2 == 4) && (temp4 == 4)){ |
shyguykjh | 0:f8d011978c8d | 437 | temp = temp1 / temp3 / temp5; |
shyguykjh | 0:f8d011978c8d | 438 | } |
shyguykjh | 0:f8d011978c8d | 439 | else{ |
shyguykjh | 0:f8d011978c8d | 440 | uLCD.printf("Error"); |
shyguykjh | 0:f8d011978c8d | 441 | } |
shyguykjh | 0:f8d011978c8d | 442 | |
shyguykjh | 0:f8d011978c8d | 443 | uLCD.color(RED); |
shyguykjh | 0:f8d011978c8d | 444 | uLCD.printf("%0.2f\n", temp); |
shyguykjh | 0:f8d011978c8d | 445 | |
shyguykjh | 0:f8d011978c8d | 446 | } |
shyguykjh | 0:f8d011978c8d | 447 | } |