Team Kryptonite EE300 Keypad Subsystem
Fork of mbed_can_bus_test1 by
main.cpp@3:e019f1954b2a, 2017-12-07 (annotated)
- Committer:
- Googlesomething
- Date:
- Thu Dec 07 23:17:35 2017 +0000
- Revision:
- 3:e019f1954b2a
- Parent:
- 2:02021bd6b07e
Final Product
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Googlesomething | 0:f4b73d13d381 | 1 | #include "mbed.h" |
Googlesomething | 3:e019f1954b2a | 2 | #include <iostream> |
Googlesomething | 3:e019f1954b2a | 3 | #include <cmath> |
Googlesomething | 3:e019f1954b2a | 4 | #include <iomanip> |
Googlesomething | 3:e019f1954b2a | 5 | |
Googlesomething | 1:907c82f7f923 | 6 | #include "Keypad.h" |
Googlesomething | 0:f4b73d13d381 | 7 | |
Googlesomething | 0:f4b73d13d381 | 8 | Ticker ticker; |
Googlesomething | 2:02021bd6b07e | 9 | Serial PC(USBTX, USBRX); |
Googlesomething | 0:f4b73d13d381 | 10 | DigitalOut led1(LED1); |
Googlesomething | 0:f4b73d13d381 | 11 | DigitalOut led2(LED2); |
Googlesomething | 0:f4b73d13d381 | 12 | CAN can1(p9,p10); |
Googlesomething | 0:f4b73d13d381 | 13 | CAN can2(p30,p29); |
Googlesomething | 2:02021bd6b07e | 14 | DigitalIn pin21(p21); |
Googlesomething | 2:02021bd6b07e | 15 | DigitalIn pin22(p22); |
Googlesomething | 2:02021bd6b07e | 16 | DigitalIn pin23(p23); |
Googlesomething | 2:02021bd6b07e | 17 | DigitalIn pin24(p24); |
Googlesomething | 2:02021bd6b07e | 18 | DigitalIn pin25(p25); |
Googlesomething | 2:02021bd6b07e | 19 | DigitalIn pin26(p26); |
Googlesomething | 2:02021bd6b07e | 20 | DigitalIn pin27(p27); |
Googlesomething | 2:02021bd6b07e | 21 | |
Googlesomething | 0:f4b73d13d381 | 22 | |
Googlesomething | 0:f4b73d13d381 | 23 | //Declare KeyPad GPIO pins here |
Googlesomething | 0:f4b73d13d381 | 24 | |
Googlesomething | 1:907c82f7f923 | 25 | char Keytable[] = { '1', '2', '3', //row0, p1, mbedpin21 |
Googlesomething | 1:907c82f7f923 | 26 | '4', '5', '6', //row1, p2, mbedpin22 |
Googlesomething | 2:02021bd6b07e | 27 | '7', '8', '9', //row2, p3, mbedpin23 |
Googlesomething | 1:907c82f7f923 | 28 | '*', '0', '#', //row3, p4, mbedpin24 |
Googlesomething | 1:907c82f7f923 | 29 | }; |
Googlesomething | 1:907c82f7f923 | 30 | //col0, col1, col2 |
Googlesomething | 1:907c82f7f923 | 31 | //p5, p6, p7 |
Googlesomething | 1:907c82f7f923 | 32 | //mbedpin25, mbedpin26, mbedpin27 |
Googlesomething | 2:02021bd6b07e | 33 | |
Googlesomething | 3:e019f1954b2a | 34 | void functionone(int& Index, int& count); |
Googlesomething | 3:e019f1954b2a | 35 | void functiontwo(); |
Googlesomething | 3:e019f1954b2a | 36 | void functionthree(); |
Googlesomething | 0:f4b73d13d381 | 37 | |
Googlesomething | 3:e019f1954b2a | 38 | using namespace std; |
Googlesomething | 3:e019f1954b2a | 39 | |
Googlesomething | 3:e019f1954b2a | 40 | int32_t Index; |
Googlesomething | 3:e019f1954b2a | 41 | int32_t count = 0; |
Googlesomething | 3:e019f1954b2a | 42 | |
Googlesomething | 3:e019f1954b2a | 43 | uint32_t cbAfterInput(uint32_t index) |
Googlesomething | 2:02021bd6b07e | 44 | { |
Googlesomething | 3:e019f1954b2a | 45 | Index = index; |
Googlesomething | 2:02021bd6b07e | 46 | return 0; |
Googlesomething | 3:e019f1954b2a | 47 | } |
Googlesomething | 0:f4b73d13d381 | 48 | |
Googlesomething | 0:f4b73d13d381 | 49 | //Universal ID: 1337 |
Googlesomething | 0:f4b73d13d381 | 50 | //CAN Message Info |
Googlesomething | 3:e019f1954b2a | 51 | char counter = '0'; //keypad system CAN test variable |
Googlesomething | 0:f4b73d13d381 | 52 | char start = '*'; //Start |
Googlesomething | 2:02021bd6b07e | 53 | char stop = '#'; //Stop / Reset |
Googlesomething | 3:e019f1954b2a | 54 | char amp5 = '5'; //Digipot |
Googlesomething | 3:e019f1954b2a | 55 | char amp4 = '4'; //Digipot |
Googlesomething | 3:e019f1954b2a | 56 | char amp3 = '3'; //Digipot |
Googlesomething | 3:e019f1954b2a | 57 | char amp2 = '2'; //Digipot |
Googlesomething | 3:e019f1954b2a | 58 | char amp1 = '1'; //Digipot |
Googlesomething | 3:e019f1954b2a | 59 | char sin10Hz = 'q'; //DAC - |
Googlesomething | 3:e019f1954b2a | 60 | char sin1Hz = 'w'; //DAC - |
Googlesomething | 3:e019f1954b2a | 61 | char sqr10Hz = 'o'; //DAC - |
Googlesomething | 3:e019f1954b2a | 62 | char sqr1Hz = 't'; //DAC - |
Googlesomething | 2:02021bd6b07e | 63 | char saveUSB = 'u'; //ADC -0 |
Googlesomething | 0:f4b73d13d381 | 64 | char saveLocal = 'l'; //ADC That's an l as in labeorphily |
Googlesomething | 2:02021bd6b07e | 65 | char keypress; |
Googlesomething | 0:f4b73d13d381 | 66 | |
Googlesomething | 0:f4b73d13d381 | 67 | |
Googlesomething | 0:f4b73d13d381 | 68 | //CAN Send (Parameter = message data) |
Googlesomething | 0:f4b73d13d381 | 69 | void send(char sendMsg) { |
Googlesomething | 3:e019f1954b2a | 70 | if(can1.write(CANMessage(1337, &sendMsg, 1))) |
Googlesomething | 3:e019f1954b2a | 71 | { |
Googlesomething | 3:e019f1954b2a | 72 | printf("Command sent: %c\n\n", sendMsg); |
Googlesomething | 0:f4b73d13d381 | 73 | } |
Googlesomething | 3:e019f1954b2a | 74 | led1 = !led1; |
Googlesomething | 1:907c82f7f923 | 75 | } |
Googlesomething | 0:f4b73d13d381 | 76 | |
Googlesomething | 3:e019f1954b2a | 77 | |
Googlesomething | 0:f4b73d13d381 | 78 | /* write Switch statements*/ |
Googlesomething | 0:f4b73d13d381 | 79 | //Setup Choice Switch Statements |
Googlesomething | 1:907c82f7f923 | 80 | |
Googlesomething | 3:e019f1954b2a | 81 | void functionone(int& Index, int& count)// Get Keypad Input to change Index |
Googlesomething | 3:e019f1954b2a | 82 | { |
Googlesomething | 3:e019f1954b2a | 83 | while(count == Index) |
Googlesomething | 3:e019f1954b2a | 84 | { |
Googlesomething | 3:e019f1954b2a | 85 | Keypad keypad(p21, p22, p23, p24, p25, p26, p27, NC); |
Googlesomething | 3:e019f1954b2a | 86 | keypad.attach(&cbAfterInput); |
Googlesomething | 3:e019f1954b2a | 87 | keypad.start(); |
Googlesomething | 3:e019f1954b2a | 88 | } |
Googlesomething | 3:e019f1954b2a | 89 | count = Index; |
Googlesomething | 3:e019f1954b2a | 90 | |
Googlesomething | 3:e019f1954b2a | 91 | } |
Googlesomething | 3:e019f1954b2a | 92 | |
Googlesomething | 3:e019f1954b2a | 93 | void functiontwo() //DAC |
Googlesomething | 3:e019f1954b2a | 94 | { |
Googlesomething | 3:e019f1954b2a | 95 | |
Googlesomething | 3:e019f1954b2a | 96 | int reset = -1; |
Googlesomething | 3:e019f1954b2a | 97 | |
Googlesomething | 3:e019f1954b2a | 98 | while(reset == -1) |
Googlesomething | 3:e019f1954b2a | 99 | { |
Googlesomething | 3:e019f1954b2a | 100 | cout << "-------------------------------------------------\n\r" << endl; |
Googlesomething | 3:e019f1954b2a | 101 | cout << "For 10Hz Sine Wave select: 3\n\r" << endl; |
Googlesomething | 3:e019f1954b2a | 102 | cout << "For 1Hz Sine Wave select: 4\n\r" << endl; |
Googlesomething | 3:e019f1954b2a | 103 | cout << "For 10Hz Square Wave select: 5\n\r" << endl; |
Googlesomething | 3:e019f1954b2a | 104 | cout << "For 1Hz Square Wave select: 6\n\r" << endl; |
Googlesomething | 3:e019f1954b2a | 105 | |
Googlesomething | 3:e019f1954b2a | 106 | functionone(Index, count); |
Googlesomething | 3:e019f1954b2a | 107 | |
Googlesomething | 3:e019f1954b2a | 108 | if (Index == 2) |
Googlesomething | 3:e019f1954b2a | 109 | { |
Googlesomething | 3:e019f1954b2a | 110 | cout << "10Hz Sine Wave has been selected \n\r" << endl; |
Googlesomething | 3:e019f1954b2a | 111 | send(sin10Hz); |
Googlesomething | 3:e019f1954b2a | 112 | reset = 1; |
Googlesomething | 3:e019f1954b2a | 113 | } |
Googlesomething | 3:e019f1954b2a | 114 | else if (Index == 3) |
Googlesomething | 3:e019f1954b2a | 115 | { |
Googlesomething | 3:e019f1954b2a | 116 | cout << "1Hz Sine Wave has been selected\n\r" << endl; |
Googlesomething | 3:e019f1954b2a | 117 | send(sin1Hz); |
Googlesomething | 3:e019f1954b2a | 118 | reset = 1; |
Googlesomething | 3:e019f1954b2a | 119 | } |
Googlesomething | 3:e019f1954b2a | 120 | else if (Index == 4) |
Googlesomething | 3:e019f1954b2a | 121 | { |
Googlesomething | 3:e019f1954b2a | 122 | cout << "10Hz Square Wave has been selected \n\r" << endl; |
Googlesomething | 3:e019f1954b2a | 123 | send(sqr10Hz); |
Googlesomething | 3:e019f1954b2a | 124 | reset = 1; |
Googlesomething | 3:e019f1954b2a | 125 | } |
Googlesomething | 3:e019f1954b2a | 126 | else if (Index == 5) |
Googlesomething | 3:e019f1954b2a | 127 | { |
Googlesomething | 3:e019f1954b2a | 128 | cout << "1Hz Square Wave has been selected \n\r" << endl; |
Googlesomething | 3:e019f1954b2a | 129 | send(sqr1Hz); |
Googlesomething | 3:e019f1954b2a | 130 | reset = 1; |
Googlesomething | 3:e019f1954b2a | 131 | } |
Googlesomething | 3:e019f1954b2a | 132 | else |
Googlesomething | 3:e019f1954b2a | 133 | { |
Googlesomething | 3:e019f1954b2a | 134 | reset = -1; |
Googlesomething | 3:e019f1954b2a | 135 | } |
Googlesomething | 3:e019f1954b2a | 136 | } |
Googlesomething | 3:e019f1954b2a | 137 | } |
Googlesomething | 3:e019f1954b2a | 138 | |
Googlesomething | 3:e019f1954b2a | 139 | void functionthree()//Digipot Config (select amplitude) |
Googlesomething | 3:e019f1954b2a | 140 | { |
Googlesomething | 3:e019f1954b2a | 141 | int flag = -1; |
Googlesomething | 3:e019f1954b2a | 142 | |
Googlesomething | 3:e019f1954b2a | 143 | while (flag == -1) |
Googlesomething | 3:e019f1954b2a | 144 | { |
Googlesomething | 3:e019f1954b2a | 145 | cout << "-------------------------------------------------\n\r" << endl; |
Googlesomething | 3:e019f1954b2a | 146 | cout << "Select Waveform Amplitude\n\r"; |
Googlesomething | 3:e019f1954b2a | 147 | cout << "1V = 1,\n2V = 2,\n3V = 3,\n4V = 4,\n5v = 5\n\r" << endl; |
Googlesomething | 3:e019f1954b2a | 148 | |
Googlesomething | 3:e019f1954b2a | 149 | functionone(Index, count); |
Googlesomething | 3:e019f1954b2a | 150 | |
Googlesomething | 3:e019f1954b2a | 151 | if (Index == 0) |
Googlesomething | 3:e019f1954b2a | 152 | { |
Googlesomething | 3:e019f1954b2a | 153 | send(amp1); |
Googlesomething | 3:e019f1954b2a | 154 | flag =1; |
Googlesomething | 3:e019f1954b2a | 155 | } |
Googlesomething | 3:e019f1954b2a | 156 | else if (Index == 1) |
Googlesomething | 3:e019f1954b2a | 157 | { |
Googlesomething | 3:e019f1954b2a | 158 | send(amp2); |
Googlesomething | 3:e019f1954b2a | 159 | flag = 1; |
Googlesomething | 3:e019f1954b2a | 160 | } |
Googlesomething | 3:e019f1954b2a | 161 | else if (Index == 2) |
Googlesomething | 3:e019f1954b2a | 162 | { |
Googlesomething | 3:e019f1954b2a | 163 | send(amp3); |
Googlesomething | 3:e019f1954b2a | 164 | flag = 1; |
Googlesomething | 3:e019f1954b2a | 165 | } |
Googlesomething | 3:e019f1954b2a | 166 | else if (Index == 3) |
Googlesomething | 3:e019f1954b2a | 167 | { |
Googlesomething | 3:e019f1954b2a | 168 | send(amp4); |
Googlesomething | 3:e019f1954b2a | 169 | flag = 1; |
Googlesomething | 3:e019f1954b2a | 170 | } |
Googlesomething | 3:e019f1954b2a | 171 | else if (Index == 4) |
Googlesomething | 3:e019f1954b2a | 172 | { |
Googlesomething | 3:e019f1954b2a | 173 | send(amp5); |
Googlesomething | 3:e019f1954b2a | 174 | flag = 1; |
Googlesomething | 3:e019f1954b2a | 175 | } |
Googlesomething | 3:e019f1954b2a | 176 | else |
Googlesomething | 3:e019f1954b2a | 177 | { |
Googlesomething | 3:e019f1954b2a | 178 | flag = -1; |
Googlesomething | 3:e019f1954b2a | 179 | } |
Googlesomething | 3:e019f1954b2a | 180 | } |
Googlesomething | 3:e019f1954b2a | 181 | } |
Googlesomething | 3:e019f1954b2a | 182 | |
Googlesomething | 3:e019f1954b2a | 183 | void functionfour() //ADC Config (Save Location Settings) |
Googlesomething | 3:e019f1954b2a | 184 | { |
Googlesomething | 3:e019f1954b2a | 185 | int flag = -1; |
Googlesomething | 3:e019f1954b2a | 186 | |
Googlesomething | 3:e019f1954b2a | 187 | while(flag == -1) |
Googlesomething | 3:e019f1954b2a | 188 | { |
Googlesomething | 3:e019f1954b2a | 189 | cout << "-------------------------------------------------\n\r" << endl; |
Googlesomething | 3:e019f1954b2a | 190 | cout << "Select Save Location:\n\r" << endl; |
Googlesomething | 3:e019f1954b2a | 191 | cout << "Save Locally (default) = 5, Save to USB = 6\n\r" << endl; |
Googlesomething | 3:e019f1954b2a | 192 | |
Googlesomething | 3:e019f1954b2a | 193 | functionone(Index, count); |
Googlesomething | 3:e019f1954b2a | 194 | |
Googlesomething | 3:e019f1954b2a | 195 | if (Index == 4) |
Googlesomething | 3:e019f1954b2a | 196 | { |
Googlesomething | 3:e019f1954b2a | 197 | cout << "Save locally has been selected\n\r" << endl; |
Googlesomething | 3:e019f1954b2a | 198 | send(saveLocal); |
Googlesomething | 3:e019f1954b2a | 199 | flag = 1; |
Googlesomething | 3:e019f1954b2a | 200 | } |
Googlesomething | 3:e019f1954b2a | 201 | else if (Index == 5) |
Googlesomething | 3:e019f1954b2a | 202 | { |
Googlesomething | 3:e019f1954b2a | 203 | cout << "Save to USB has been selected\n\r" << endl; |
Googlesomething | 3:e019f1954b2a | 204 | send(saveUSB); |
Googlesomething | 3:e019f1954b2a | 205 | flag = 1; |
Googlesomething | 3:e019f1954b2a | 206 | } |
Googlesomething | 3:e019f1954b2a | 207 | else |
Googlesomething | 3:e019f1954b2a | 208 | { |
Googlesomething | 3:e019f1954b2a | 209 | flag =-1; |
Googlesomething | 3:e019f1954b2a | 210 | } |
Googlesomething | 3:e019f1954b2a | 211 | } |
Googlesomething | 3:e019f1954b2a | 212 | } |
Googlesomething | 3:e019f1954b2a | 213 | |
Googlesomething | 3:e019f1954b2a | 214 | void functionfive()//Start Stop Waveform Command Menu |
Googlesomething | 3:e019f1954b2a | 215 | { |
Googlesomething | 3:e019f1954b2a | 216 | int flag = -1; |
Googlesomething | 3:e019f1954b2a | 217 | |
Googlesomething | 3:e019f1954b2a | 218 | while(flag == -1) |
Googlesomething | 3:e019f1954b2a | 219 | { |
Googlesomething | 3:e019f1954b2a | 220 | cout << "Start/Stop waveform: start = 7, stop = 8 \n\r" << endl; |
Googlesomething | 3:e019f1954b2a | 221 | |
Googlesomething | 3:e019f1954b2a | 222 | functionone(Index, count); |
Googlesomething | 3:e019f1954b2a | 223 | |
Googlesomething | 3:e019f1954b2a | 224 | if (Index ==6) |
Googlesomething | 3:e019f1954b2a | 225 | { |
Googlesomething | 3:e019f1954b2a | 226 | cout << "Wave has been started\n\r" << endl; |
Googlesomething | 3:e019f1954b2a | 227 | send(start); |
Googlesomething | 3:e019f1954b2a | 228 | flag = 1; |
Googlesomething | 3:e019f1954b2a | 229 | } |
Googlesomething | 3:e019f1954b2a | 230 | else if (Index == 7) |
Googlesomething | 3:e019f1954b2a | 231 | { |
Googlesomething | 3:e019f1954b2a | 232 | cout << "Wave has been stopped\n\r" << endl; |
Googlesomething | 3:e019f1954b2a | 233 | send(stop); |
Googlesomething | 3:e019f1954b2a | 234 | flag = 1; |
Googlesomething | 3:e019f1954b2a | 235 | } |
Googlesomething | 3:e019f1954b2a | 236 | else |
Googlesomething | 3:e019f1954b2a | 237 | { |
Googlesomething | 3:e019f1954b2a | 238 | flag = -1; |
Googlesomething | 3:e019f1954b2a | 239 | } |
Googlesomething | 3:e019f1954b2a | 240 | } |
Googlesomething | 3:e019f1954b2a | 241 | } |
Googlesomething | 3:e019f1954b2a | 242 | |
Googlesomething | 1:907c82f7f923 | 243 | |
Googlesomething | 1:907c82f7f923 | 244 | |
Googlesomething | 1:907c82f7f923 | 245 | |
Googlesomething | 2:02021bd6b07e | 246 | |
Googlesomething | 3:e019f1954b2a | 247 | int main() |
Googlesomething | 3:e019f1954b2a | 248 | { |
Googlesomething | 3:e019f1954b2a | 249 | cout << "EE 300 Embedded System Black Box Transfer Function Data Acquisition\n\r" << endl; |
Googlesomething | 2:02021bd6b07e | 250 | while(1) |
Googlesomething | 1:907c82f7f923 | 251 | { |
Googlesomething | 3:e019f1954b2a | 252 | int flag2 = -1; |
Googlesomething | 3:e019f1954b2a | 253 | |
Googlesomething | 3:e019f1954b2a | 254 | while(flag2 == -1) |
Googlesomething | 3:e019f1954b2a | 255 | { |
Googlesomething | 3:e019f1954b2a | 256 | cout << "-------------------------------------------------\n\r" << endl; |
Googlesomething | 3:e019f1954b2a | 257 | cout << "Select Wave Type = 9,\nSelect Wave Amplitude = *,\n\r"; |
Googlesomething | 3:e019f1954b2a | 258 | cout << "Select Save Location =0,\nStart/Stop Wave = #\n\r" << endl; |
Googlesomething | 3:e019f1954b2a | 259 | functionone(Index, count); |
Googlesomething | 2:02021bd6b07e | 260 | |
Googlesomething | 3:e019f1954b2a | 261 | if (Index == 8)//9 |
Googlesomething | 3:e019f1954b2a | 262 | { |
Googlesomething | 3:e019f1954b2a | 263 | functiontwo();//DAC Config Function |
Googlesomething | 3:e019f1954b2a | 264 | flag2 = 1; |
Googlesomething | 3:e019f1954b2a | 265 | } |
Googlesomething | 3:e019f1954b2a | 266 | else if (Index == 9)//* |
Googlesomething | 3:e019f1954b2a | 267 | { |
Googlesomething | 3:e019f1954b2a | 268 | functionthree();//Digipot Config |
Googlesomething | 3:e019f1954b2a | 269 | flag2 = 1; |
Googlesomething | 2:02021bd6b07e | 270 | } |
Googlesomething | 3:e019f1954b2a | 271 | else if (Index == 10) //0 |
Googlesomething | 3:e019f1954b2a | 272 | { |
Googlesomething | 3:e019f1954b2a | 273 | functionfour();//ADC Config |
Googlesomething | 3:e019f1954b2a | 274 | flag2 = 1; |
Googlesomething | 3:e019f1954b2a | 275 | } |
Googlesomething | 3:e019f1954b2a | 276 | else if (Index == 11)//# |
Googlesomething | 3:e019f1954b2a | 277 | { |
Googlesomething | 3:e019f1954b2a | 278 | functionfive();//Start/Stop Waveform Function |
Googlesomething | 3:e019f1954b2a | 279 | flag2 = 1; |
Googlesomething | 3:e019f1954b2a | 280 | } |
Googlesomething | 3:e019f1954b2a | 281 | else |
Googlesomething | 3:e019f1954b2a | 282 | { |
Googlesomething | 3:e019f1954b2a | 283 | flag2 = -1; |
Googlesomething | 3:e019f1954b2a | 284 | } |
Googlesomething | 0:f4b73d13d381 | 285 | } |
Googlesomething | 3:e019f1954b2a | 286 | |
Googlesomething | 3:e019f1954b2a | 287 | } |
Googlesomething | 0:f4b73d13d381 | 288 | } |