ECE 4180 Lab 04 - Jung Hun Kim

Dependencies:   mbed

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?

UserRevisionLine numberNew 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 }