Team Kryptonite EE300 Keypad Subsystem
Fork of mbed_can_bus_test1 by
main.cpp@1:907c82f7f923, 2017-12-01 (annotated)
- Committer:
- Googlesomething
- Date:
- Fri Dec 01 14:47:22 2017 +0000
- Revision:
- 1:907c82f7f923
- Parent:
- 0:f4b73d13d381
- Child:
- 2:02021bd6b07e
version 1.01
Who changed what in which revision?
User | Revision | Line number | New 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 | 0:f4b73d13d381 | 5 | DigitalOut led1(LED1); |
Googlesomething | 0:f4b73d13d381 | 6 | DigitalOut led2(LED2); |
Googlesomething | 0:f4b73d13d381 | 7 | CAN can1(p9,p10); |
Googlesomething | 0:f4b73d13d381 | 8 | CAN can2(p30,p29); |
Googlesomething | 0:f4b73d13d381 | 9 | |
Googlesomething | 0:f4b73d13d381 | 10 | //Declare KeyPad GPIO pins here |
Googlesomething | 0:f4b73d13d381 | 11 | |
Googlesomething | 1:907c82f7f923 | 12 | char Keytable[] = { '1', '2', '3', //row0, p1, mbedpin21 |
Googlesomething | 1:907c82f7f923 | 13 | '4', '5', '6', //row1, p2, mbedpin22 |
Googlesomething | 1:907c82f7f923 | 14 | '7', '8', '8', //row2, p3, mbedpin23 |
Googlesomething | 1:907c82f7f923 | 15 | '*', '0', '#', //row3, p4, mbedpin24 |
Googlesomething | 1:907c82f7f923 | 16 | }; |
Googlesomething | 1:907c82f7f923 | 17 | //col0, col1, col2 |
Googlesomething | 1:907c82f7f923 | 18 | //p5, p6, p7 |
Googlesomething | 1:907c82f7f923 | 19 | //mbedpin25, mbedpin26, mbedpin27 |
Googlesomething | 1:907c82f7f923 | 20 | const byte ROWS = 4; |
Googlesomething | 1:907c82f7f923 | 21 | const byte COLS = 3; |
Googlesomething | 1:907c82f7f923 | 22 | char keys[ROWS][COLS] = { |
Googlesomething | 1:907c82f7f923 | 23 | {'1','2','3'}, |
Googlesomething | 1:907c82f7f923 | 24 | {'4','5','6'}, |
Googlesomething | 1:907c82f7f923 | 25 | {'7','8','9'}, |
Googlesomething | 1:907c82f7f923 | 26 | {'*','0','#'} |
Googlesomething | 1:907c82f7f923 | 27 | }; |
Googlesomething | 1:907c82f7f923 | 28 | byte rowPins[ROWS] = {1,2,3,4}; |
Googlesomething | 1:907c82f7f923 | 29 | byte colPins[COLS] = {5,6,7}; |
Googlesomething | 0:f4b73d13d381 | 30 | |
Googlesomething | 1:907c82f7f923 | 31 | Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS); |
Googlesomething | 0:f4b73d13d381 | 32 | |
Googlesomething | 0:f4b73d13d381 | 33 | //Universal ID: 1337 |
Googlesomething | 0:f4b73d13d381 | 34 | //CAN Message Info |
Googlesomething | 0:f4b73d13d381 | 35 | char counter = 0; //keypad system CAN test variable |
Googlesomething | 0:f4b73d13d381 | 36 | char start = '*'; //Start |
Googlesomething | 0:f4b73d13d381 | 37 | char stop = '#'; //Stop |
Googlesomething | 0:f4b73d13d381 | 38 | char amp5 = 5; //Digipot |
Googlesomething | 0:f4b73d13d381 | 39 | char amp4 = 4; //Digipot |
Googlesomething | 0:f4b73d13d381 | 40 | char amp3 = 3; //Digipot |
Googlesomething | 0:f4b73d13d381 | 41 | char amp2 = 2; //Digipot |
Googlesomething | 0:f4b73d13d381 | 42 | char amp1 = 1; //Digipot |
Googlesomething | 1:907c82f7f923 | 43 | char sin10Hz = 'q'; //DAC |
Googlesomething | 1:907c82f7f923 | 44 | char sin1Hz = 'w'; //DAC |
Googlesomething | 1:907c82f7f923 | 45 | char sqr10Hz = 'o'; //DAC |
Googlesomething | 1:907c82f7f923 | 46 | char sqr1Hz = 't'; //DAC |
Googlesomething | 0:f4b73d13d381 | 47 | char saveUSB = 'u'; //ADC |
Googlesomething | 0:f4b73d13d381 | 48 | char saveLocal = 'l'; //ADC That's an l as in labeorphily |
Googlesomething | 0:f4b73d13d381 | 49 | |
Googlesomething | 0:f4b73d13d381 | 50 | |
Googlesomething | 0:f4b73d13d381 | 51 | |
Googlesomething | 0:f4b73d13d381 | 52 | //CAN Send (Parameter = message data) |
Googlesomething | 0:f4b73d13d381 | 53 | void send(char sendMsg) { |
Googlesomething | 0:f4b73d13d381 | 54 | if(can1.write(CANMessage(1337, &sendMsg, 1))) { |
Googlesomething | 0:f4b73d13d381 | 55 | printf("Message sent: %d\n", sendMsg); |
Googlesomething | 0:f4b73d13d381 | 56 | } |
Googlesomething | 0:f4b73d13d381 | 57 | led1 = !led1; |
Googlesomething | 1:907c82f7f923 | 58 | } |
Googlesomething | 0:f4b73d13d381 | 59 | |
Googlesomething | 0:f4b73d13d381 | 60 | /* write Switch statements*/ |
Googlesomething | 0:f4b73d13d381 | 61 | //Setup Choice Switch Statements |
Googlesomething | 1:907c82f7f923 | 62 | |
Googlesomething | 1:907c82f7f923 | 63 | |
Googlesomething | 1:907c82f7f923 | 64 | |
Googlesomething | 1:907c82f7f923 | 65 | |
Googlesomething | 1:907c82f7f923 | 66 | int setupChoice = NULL; |
Googlesomething | 1:907c82f7f923 | 67 | int main() { |
Googlesomething | 1:907c82f7f923 | 68 | printf("Please select the desired function:\n1: DAC Setup\n2: DigiPot Setup\n3: ADC Setup\n"); |
Googlesomething | 1:907c82f7f923 | 69 | setupChoice = Keypad[keys] |
Googlesomething | 0:f4b73d13d381 | 70 | switch(setupChoice) { |
Googlesomething | 0:f4b73d13d381 | 71 | case 1 ://DAC Setup |
Googlesomething | 1:907c82f7f923 | 72 | printf("Please choose waveform:\n1: 1Hz, Square Wave\n2: 1Hz Sine Wave\n3: 10Hz, Square Wave\n4: 10Hz, Sine Wave\n5: Return to previous menu.\n"); |
Googlesomething | 1:907c82f7f923 | 73 | if (/*Keypad Input*/ == 1) |
Googlesomething | 1:907c82f7f923 | 74 | { |
Googlesomething | 1:907c82f7f923 | 75 | } |
Googlesomething | 1:907c82f7f923 | 76 | else if (/*Keypad Input*/ == 2) |
Googlesomething | 1:907c82f7f923 | 77 | { |
Googlesomething | 1:907c82f7f923 | 78 | } |
Googlesomething | 1:907c82f7f923 | 79 | else if (/*Keypad Input*/ == 3) |
Googlesomething | 1:907c82f7f923 | 80 | { |
Googlesomething | 1:907c82f7f923 | 81 | } |
Googlesomething | 1:907c82f7f923 | 82 | else if (/*Keypad Input*/ == 4) |
Googlesomething | 1:907c82f7f923 | 83 | { |
Googlesomething | 1:907c82f7f923 | 84 | } |
Googlesomething | 1:907c82f7f923 | 85 | else if (/*Keypad Input*/ == 5) |
Googlesomething | 1:907c82f7f923 | 86 | { |
Googlesomething | 1:907c82f7f923 | 87 | } |
Googlesomething | 0:f4b73d13d381 | 88 | break; //optional |
Googlesomething | 0:f4b73d13d381 | 89 | |
Googlesomething | 0:f4b73d13d381 | 90 | case 2 ://DigiPot Setup |
Googlesomething | 0:f4b73d13d381 | 91 | statement(s); |
Googlesomething | 0:f4b73d13d381 | 92 | break; //optional |
Googlesomething | 0:f4b73d13d381 | 93 | |
Googlesomething | 0:f4b73d13d381 | 94 | case 3 ://ADC Setup |
Googlesomething | 0:f4b73d13d381 | 95 | statement(s); |
Googlesomething | 0:f4b73d13d381 | 96 | break; //Optional |
Googlesomething | 0:f4b73d13d381 | 97 | |
Googlesomething | 0:f4b73d13d381 | 98 | |
Googlesomething | 0:f4b73d13d381 | 99 | default : //Optional |
Googlesomething | 0:f4b73d13d381 | 100 | statement(s); |
Googlesomething | 1:907c82f7f923 | 101 | }; |
Googlesomething | 0:f4b73d13d381 | 102 | ticker.attach(&send, 1); |
Googlesomething | 0:f4b73d13d381 | 103 | CANMessage msg; |
Googlesomething | 0:f4b73d13d381 | 104 | while(1) { |
Googlesomething | 0:f4b73d13d381 | 105 | if(can2.read(msg)) { |
Googlesomething | 0:f4b73d13d381 | 106 | printf("Message Recieved: %d\n\n", msg.data[0]); |
Googlesomething | 0:f4b73d13d381 | 107 | led2 = !led2; |
Googlesomething | 0:f4b73d13d381 | 108 | } |
Googlesomething | 0:f4b73d13d381 | 109 | wait(0.2); |
Googlesomething | 0:f4b73d13d381 | 110 | } |
Googlesomething | 0:f4b73d13d381 | 111 | } |