Team Kryptonite EE300 Keypad Subsystem

Dependencies:   keypad mbed

Fork of mbed_can_bus_test1 by Kryptonite

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?

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