Team Kryptonite EE300 Keypad Subsystem

Dependencies:   keypad mbed

Fork of mbed_can_bus_test1 by Kryptonite

Committer:
Googlesomething
Date:
Fri Dec 01 16:06:09 2017 +0000
Revision:
2:02021bd6b07e
Parent:
1:907c82f7f923
Child:
3:e019f1954b2a
Version 1.20

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Googlesomething 0:f4b73d13d381 1 #include "mbed.h"
Googlesomething 1:907c82f7f923 2 #include "Keypad.h"
Googlesomething 0:f4b73d13d381 3
Googlesomething 0:f4b73d13d381 4 Ticker ticker;
Googlesomething 2:02021bd6b07e 5 Serial PC(USBTX, USBRX);
Googlesomething 0:f4b73d13d381 6 DigitalOut led1(LED1);
Googlesomething 0:f4b73d13d381 7 DigitalOut led2(LED2);
Googlesomething 0:f4b73d13d381 8 CAN can1(p9,p10);
Googlesomething 0:f4b73d13d381 9 CAN can2(p30,p29);
Googlesomething 2:02021bd6b07e 10 DigitalIn pin21(p21);
Googlesomething 2:02021bd6b07e 11 DigitalIn pin22(p22);
Googlesomething 2:02021bd6b07e 12 DigitalIn pin23(p23);
Googlesomething 2:02021bd6b07e 13 DigitalIn pin24(p24);
Googlesomething 2:02021bd6b07e 14 DigitalIn pin25(p25);
Googlesomething 2:02021bd6b07e 15 DigitalIn pin26(p26);
Googlesomething 2:02021bd6b07e 16 DigitalIn pin27(p27);
Googlesomething 2:02021bd6b07e 17
Googlesomething 0:f4b73d13d381 18
Googlesomething 0:f4b73d13d381 19 //Declare KeyPad GPIO pins here
Googlesomething 0:f4b73d13d381 20
Googlesomething 1:907c82f7f923 21 char Keytable[] = { '1', '2', '3', //row0, p1, mbedpin21
Googlesomething 1:907c82f7f923 22 '4', '5', '6', //row1, p2, mbedpin22
Googlesomething 2:02021bd6b07e 23 '7', '8', '9', //row2, p3, mbedpin23
Googlesomething 1:907c82f7f923 24 '*', '0', '#', //row3, p4, mbedpin24
Googlesomething 1:907c82f7f923 25 };
Googlesomething 1:907c82f7f923 26 //col0, col1, col2
Googlesomething 1:907c82f7f923 27 //p5, p6, p7
Googlesomething 1:907c82f7f923 28 //mbedpin25, mbedpin26, mbedpin27
Googlesomething 2:02021bd6b07e 29
Googlesomething 0:f4b73d13d381 30
Googlesomething 2:02021bd6b07e 31 int32_t Index =-1;
Googlesomething 2:02021bd6b07e 32 int State;
Googlesomething 2:02021bd6b07e 33
Googlesomething 2:02021bd6b07e 34 uint32_t cbAfterInput(uint32_t _index)
Googlesomething 2:02021bd6b07e 35 {
Googlesomething 2:02021bd6b07e 36 Index = _index;
Googlesomething 2:02021bd6b07e 37 return 0;
Googlesomething 2:02021bd6b07e 38 }
Googlesomething 0:f4b73d13d381 39
Googlesomething 0:f4b73d13d381 40 //Universal ID: 1337
Googlesomething 0:f4b73d13d381 41 //CAN Message Info
Googlesomething 0:f4b73d13d381 42 char counter = 0; //keypad system CAN test variable
Googlesomething 0:f4b73d13d381 43 char start = '*'; //Start
Googlesomething 2:02021bd6b07e 44 char stop = '#'; //Stop / Reset
Googlesomething 0:f4b73d13d381 45 char amp5 = 5; //Digipot
Googlesomething 0:f4b73d13d381 46 char amp4 = 4; //Digipot
Googlesomething 0:f4b73d13d381 47 char amp3 = 3; //Digipot
Googlesomething 0:f4b73d13d381 48 char amp2 = 2; //Digipot
Googlesomething 0:f4b73d13d381 49 char amp1 = 1; //Digipot
Googlesomething 2:02021bd6b07e 50 char sin10Hz = 'q'; //DAC -6
Googlesomething 2:02021bd6b07e 51 char sin1Hz = 'w'; //DAC -7
Googlesomething 2:02021bd6b07e 52 char sqr10Hz = 'o'; //DAC -8
Googlesomething 2:02021bd6b07e 53 char sqr1Hz = 't'; //DAC -9
Googlesomething 2:02021bd6b07e 54 char saveUSB = 'u'; //ADC -0
Googlesomething 0:f4b73d13d381 55 char saveLocal = 'l'; //ADC That's an l as in labeorphily
Googlesomething 2:02021bd6b07e 56 char keypress;
Googlesomething 0:f4b73d13d381 57
Googlesomething 0:f4b73d13d381 58
Googlesomething 0:f4b73d13d381 59 //CAN Send (Parameter = message data)
Googlesomething 0:f4b73d13d381 60 void send(char sendMsg) {
Googlesomething 0:f4b73d13d381 61 if(can1.write(CANMessage(1337, &sendMsg, 1))) {
Googlesomething 0:f4b73d13d381 62 printf("Message sent: %d\n", sendMsg);
Googlesomething 0:f4b73d13d381 63 }
Googlesomething 0:f4b73d13d381 64 led1 = !led1;
Googlesomething 1:907c82f7f923 65 }
Googlesomething 0:f4b73d13d381 66
Googlesomething 0:f4b73d13d381 67 /* write Switch statements*/
Googlesomething 0:f4b73d13d381 68 //Setup Choice Switch Statements
Googlesomething 1:907c82f7f923 69
Googlesomething 1:907c82f7f923 70
Googlesomething 1:907c82f7f923 71
Googlesomething 1:907c82f7f923 72
Googlesomething 2:02021bd6b07e 73
Googlesomething 2:02021bd6b07e 74 int main() {
Googlesomething 2:02021bd6b07e 75
Googlesomething 2:02021bd6b07e 76
Googlesomething 2:02021bd6b07e 77 State = 1;
Googlesomething 2:02021bd6b07e 78
Googlesomething 2:02021bd6b07e 79
Googlesomething 2:02021bd6b07e 80 // r0 r1 r2 r3 c0 c1 c2 c3
Googlesomething 2:02021bd6b07e 81 Keypad keypad(p21, p22, p23, p24, p25, p26, p27, NC);
Googlesomething 2:02021bd6b07e 82 keypad.attach(&cbAfterInput);
Googlesomething 2:02021bd6b07e 83 keypad.start(); // energize the columns c0-c3 of the keypad
Googlesomething 2:02021bd6b07e 84
Googlesomething 2:02021bd6b07e 85 while (1) {
Googlesomething 2:02021bd6b07e 86 __wfi();
Googlesomething 2:02021bd6b07e 87 if (Index > -1) {
Googlesomething 2:02021bd6b07e 88 PC.printf("Interrupted");
Googlesomething 2:02021bd6b07e 89 PC.printf("Index:%d => Key:%c\r\n", Index, Keytable[Index]);
Googlesomething 2:02021bd6b07e 90 Index = -1;
Googlesomething 2:02021bd6b07e 91 printf("here2");
Googlesomething 2:02021bd6b07e 92 }
Googlesomething 2:02021bd6b07e 93
Googlesomething 2:02021bd6b07e 94
Googlesomething 2:02021bd6b07e 95 printf("Please choose waveform:\n1: 1V \n2: 2V \n3: 3V \n4: 4V \n5: 5V \n6: 10Hz, Sine wave");
Googlesomething 2:02021bd6b07e 96 printf("\n7: 1Hz, Sine Wave\n8: 10Hz, Square Wave \n9: 1Hz, Square wave \n0: Save to USB \n*: Start Waveform Generation \n#: Stop/Reset Waveform\n");
Googlesomething 2:02021bd6b07e 97
Googlesomething 2:02021bd6b07e 98 while(1)
Googlesomething 1:907c82f7f923 99 {
Googlesomething 2:02021bd6b07e 100 keypress = Keytable[Index];
Googlesomething 2:02021bd6b07e 101 switch(keypress) {
Googlesomething 2:02021bd6b07e 102 case 1 :
Googlesomething 2:02021bd6b07e 103 send(amp1);
Googlesomething 2:02021bd6b07e 104 Index=-1;
Googlesomething 2:02021bd6b07e 105 printf("here1");
Googlesomething 2:02021bd6b07e 106 break; //optional
Googlesomething 2:02021bd6b07e 107
Googlesomething 2:02021bd6b07e 108 case 2 :
Googlesomething 2:02021bd6b07e 109 send(amp2);
Googlesomething 2:02021bd6b07e 110 Index=-1;
Googlesomething 0:f4b73d13d381 111 break; //optional
Googlesomething 0:f4b73d13d381 112
Googlesomething 2:02021bd6b07e 113 case 3 :
Googlesomething 2:02021bd6b07e 114 send(amp3);
Googlesomething 2:02021bd6b07e 115 Index=-1;
Googlesomething 2:02021bd6b07e 116 break; //Optional
Googlesomething 2:02021bd6b07e 117
Googlesomething 2:02021bd6b07e 118 case 4 :
Googlesomething 2:02021bd6b07e 119 send(amp4);
Googlesomething 2:02021bd6b07e 120 Index=-1;
Googlesomething 2:02021bd6b07e 121 break;
Googlesomething 2:02021bd6b07e 122
Googlesomething 2:02021bd6b07e 123 case 5 :
Googlesomething 2:02021bd6b07e 124 send(amp5);
Googlesomething 2:02021bd6b07e 125 Index=-1;
Googlesomething 2:02021bd6b07e 126 break;
Googlesomething 2:02021bd6b07e 127
Googlesomething 2:02021bd6b07e 128 case 6 :
Googlesomething 2:02021bd6b07e 129 send(sin10Hz);
Googlesomething 2:02021bd6b07e 130 Index=-1;
Googlesomething 2:02021bd6b07e 131 break;
Googlesomething 2:02021bd6b07e 132
Googlesomething 2:02021bd6b07e 133 case 7 :
Googlesomething 2:02021bd6b07e 134 send(sin1Hz);
Googlesomething 2:02021bd6b07e 135 Index=-1;
Googlesomething 2:02021bd6b07e 136 break;
Googlesomething 2:02021bd6b07e 137
Googlesomething 2:02021bd6b07e 138 case 8 :
Googlesomething 2:02021bd6b07e 139 send(sqr10Hz);
Googlesomething 2:02021bd6b07e 140 Index=-1;
Googlesomething 2:02021bd6b07e 141 break;
Googlesomething 2:02021bd6b07e 142
Googlesomething 2:02021bd6b07e 143 case 9 :
Googlesomething 2:02021bd6b07e 144 send(sqr1Hz);
Googlesomething 2:02021bd6b07e 145 Index=-1;
Googlesomething 2:02021bd6b07e 146 break;
Googlesomething 2:02021bd6b07e 147
Googlesomething 2:02021bd6b07e 148 case 0 :
Googlesomething 2:02021bd6b07e 149 send(saveUSB);
Googlesomething 2:02021bd6b07e 150 Index=-1;
Googlesomething 2:02021bd6b07e 151 break;
Googlesomething 2:02021bd6b07e 152
Googlesomething 2:02021bd6b07e 153 case '*' :
Googlesomething 2:02021bd6b07e 154 send(start);
Googlesomething 2:02021bd6b07e 155 Index=-1;
Googlesomething 2:02021bd6b07e 156 break;
Googlesomething 2:02021bd6b07e 157
Googlesomething 2:02021bd6b07e 158 case '#' :
Googlesomething 2:02021bd6b07e 159 send(stop);
Googlesomething 2:02021bd6b07e 160 Index=-1;
Googlesomething 2:02021bd6b07e 161 break;
Googlesomething 2:02021bd6b07e 162
Googlesomething 2:02021bd6b07e 163 };
Googlesomething 2:02021bd6b07e 164 }
Googlesomething 2:02021bd6b07e 165 /*CANMessage msg;
Googlesomething 0:f4b73d13d381 166 while(1) {
Googlesomething 0:f4b73d13d381 167 if(can2.read(msg)) {
Googlesomething 0:f4b73d13d381 168 printf("Message Recieved: %d\n\n", msg.data[0]);
Googlesomething 0:f4b73d13d381 169 led2 = !led2;
Googlesomething 0:f4b73d13d381 170 }
Googlesomething 0:f4b73d13d381 171 wait(0.2);
Googlesomething 2:02021bd6b07e 172 }*/
Googlesomething 0:f4b73d13d381 173 }
Googlesomething 2:02021bd6b07e 174 }