Mbed code for KeyPad

Dependencies:   KeyPad2 mbed

Committer:
darksonic56
Date:
Sat Dec 09 21:45:18 2017 +0000
Revision:
8:8155a917d4ec
Parent:
7:630372bb8c15
final code for the report guys!

Who changed what in which revision?

UserRevisionLine numberNew contents of line
darksonic56 0:8032385fe022 1 #include "mbed.h"
KaanTayfun 2:86bb9a494e13 2 #include "Keypad.h"
darksonic56 7:630372bb8c15 3 #include <iostream>
darksonic56 0:8032385fe022 4
darksonic56 7:630372bb8c15 5 //Ticker ticker;
darksonic56 4:f840ae3a1abd 6 DigitalOut led1(LED1);
darksonic56 4:f840ae3a1abd 7 DigitalOut led2(LED2);
darksonic56 8:8155a917d4ec 8 CAN can2(p30,p29); //p30(rx) and p29(tx)
darksonic56 8:8155a917d4ec 9 CAN can1(p9, p10); //p9 (rx) and p10(tx)
darksonic56 7:630372bb8c15 10 CANMessage msg;
darksonic56 4:f840ae3a1abd 11 char counter = 0;
darksonic56 4:f840ae3a1abd 12
darksonic56 3:a88e77be7ed9 13 char Keytable[] = { '1', '2', '3', 'A',
darksonic56 3:a88e77be7ed9 14 '4', '5', '6', 'B',
darksonic56 3:a88e77be7ed9 15 '7', '8', '9', 'C',
darksonic56 3:a88e77be7ed9 16 '*', '0', '#', 'D' };
darksonic56 3:a88e77be7ed9 17
darksonic56 3:a88e77be7ed9 18 uint32_t Index;
darksonic56 3:a88e77be7ed9 19 uint32_t cbAfterInput(uint32_t index) {
darksonic56 3:a88e77be7ed9 20 Index = index;
darksonic56 3:a88e77be7ed9 21 return 0;
darksonic56 3:a88e77be7ed9 22 }
darksonic56 3:a88e77be7ed9 23
darksonic56 0:8032385fe022 24 int main() {
darksonic56 4:f840ae3a1abd 25 //variables declared
darksonic56 4:f840ae3a1abd 26 char mainLvl, partLvl;
darksonic56 8:8155a917d4ec 27 int toggle = 0;
darksonic56 8:8155a917d4ec 28 int squareToggle = 0;
darksonic56 4:f840ae3a1abd 29 int digpotAmp = 0;
darksonic56 4:f840ae3a1abd 30 Keypad::Keypad keypad(p21, p22, p23, p24, p25, p26, p27, p28, 20);
darksonic56 3:a88e77be7ed9 31 keypad.attach(&cbAfterInput);
darksonic56 3:a88e77be7ed9 32 keypad.start();
darksonic56 3:a88e77be7ed9 33
darksonic56 3:a88e77be7ed9 34 Serial pc(USBTX, USBRX);
darksonic56 3:a88e77be7ed9 35
darksonic56 3:a88e77be7ed9 36 while(1){
darksonic56 4:f840ae3a1abd 37 pc.printf("This is the Black Box Tester input controller\r\n");
darksonic56 4:f840ae3a1abd 38 pc.printf("Please select the desired command:\r\n");
darksonic56 4:f840ae3a1abd 39 pc.printf("1. DAC Setup\r\n");
darksonic56 4:f840ae3a1abd 40 pc.printf("2. Digital Potentiometer Setup\r\n");
darksonic56 4:f840ae3a1abd 41 pc.printf("3. ADC Setup\r\n");
darksonic56 4:f840ae3a1abd 42 pc.printf("\r\n");
darksonic56 6:0b280f50544d 43
darksonic56 3:a88e77be7ed9 44 __wfi();
darksonic56 4:f840ae3a1abd 45 mainLvl = Keytable[Index];
darksonic56 7:630372bb8c15 46
darksonic56 4:f840ae3a1abd 47 switch(mainLvl)
darksonic56 4:f840ae3a1abd 48 {
darksonic56 4:f840ae3a1abd 49 case '1': // DAC Setup
darksonic56 4:f840ae3a1abd 50 while(partLvl != '*')
darksonic56 4:f840ae3a1abd 51 {
darksonic56 4:f840ae3a1abd 52 pc.printf("Please select the desired command:\r\n");
darksonic56 7:630372bb8c15 53 pc.printf("1. Enable DAC\r\n");
darksonic56 7:630372bb8c15 54 pc.printf("2. Disable DAC\r\n");
darksonic56 7:630372bb8c15 55 pc.printf("3. Toggle Sin 1 HZ wave\r\n");
darksonic56 7:630372bb8c15 56 pc.printf("4. Toggle Sin 10 HZ wave\r\n");
darksonic56 7:630372bb8c15 57 pc.printf("5. Toggle Square 1 HZ wave\r\n");
darksonic56 7:630372bb8c15 58 pc.printf("6. Toggle Square 10 HZ wave\r\n");
darksonic56 4:f840ae3a1abd 59 pc.printf("*: Please return to Main Menu\r\n");
darksonic56 4:f840ae3a1abd 60 pc.printf("\r\n");
darksonic56 4:f840ae3a1abd 61 __wfi();
darksonic56 4:f840ae3a1abd 62 partLvl = Keytable[Index];
darksonic56 8:8155a917d4ec 63
darksonic56 4:f840ae3a1abd 64 switch(partLvl)
darksonic56 4:f840ae3a1abd 65 {
darksonic56 7:630372bb8c15 66 case '1':
darksonic56 8:8155a917d4ec 67 counter = 5;
darksonic56 8:8155a917d4ec 68 can1.write(CANMessage(1337, &counter, 1));
darksonic56 4:f840ae3a1abd 69 pc.printf("DAC Enabled\r\n");
darksonic56 4:f840ae3a1abd 70 pc.printf("\r\n");
darksonic56 6:0b280f50544d 71
darksonic56 4:f840ae3a1abd 72 break;
darksonic56 4:f840ae3a1abd 73
darksonic56 7:630372bb8c15 74 case '2':
darksonic56 8:8155a917d4ec 75 counter = 0;
darksonic56 8:8155a917d4ec 76 can1.write(CANMessage(1337, &counter, 1));
darksonic56 4:f840ae3a1abd 77 pc.printf("DAC Disabled\r\n");
darksonic56 4:f840ae3a1abd 78 pc.printf("\r\n");
darksonic56 6:0b280f50544d 79
darksonic56 4:f840ae3a1abd 80 break;
darksonic56 4:f840ae3a1abd 81
darksonic56 7:630372bb8c15 82 case '3':
darksonic56 7:630372bb8c15 83 pc.printf("Sinusoid wave 1 HZ wave selected\r\n");
darksonic56 8:8155a917d4ec 84 counter = 1;
darksonic56 8:8155a917d4ec 85 can1.write(CANMessage(1337, &counter, 1));
darksonic56 4:f840ae3a1abd 86 toggle = 1;
darksonic56 7:630372bb8c15 87 break;
darksonic56 7:630372bb8c15 88 case '4':
darksonic56 7:630372bb8c15 89 pc.printf("Sinusoid wave 10 HZ wave selected\r\n");
darksonic56 8:8155a917d4ec 90 counter = 3;
darksonic56 8:8155a917d4ec 91 can1.write(CANMessage(1337, &counter, 1));
darksonic56 7:630372bb8c15 92 toggle = 10;
darksonic56 7:630372bb8c15 93 break;
darksonic56 7:630372bb8c15 94 case '5':
darksonic56 7:630372bb8c15 95 pc.printf("Square wave 1 HZ wave selected\r\n");
darksonic56 8:8155a917d4ec 96 counter = 2;
darksonic56 8:8155a917d4ec 97 can1.write(CANMessage(1337, &counter, 1));
darksonic56 8:8155a917d4ec 98 squareToggle = 1;
darksonic56 7:630372bb8c15 99 break;
darksonic56 7:630372bb8c15 100 case '6':
darksonic56 7:630372bb8c15 101 pc.printf("Square wave 10 HZ wave selected\r\n");
darksonic56 8:8155a917d4ec 102 counter = 4;
darksonic56 8:8155a917d4ec 103 can1.write(CANMessage(1337, &counter, 1));
darksonic56 8:8155a917d4ec 104 squareToggle = 10;
darksonic56 8:8155a917d4ec 105
darksonic56 4:f840ae3a1abd 106 break;
darksonic56 4:f840ae3a1abd 107 default:
darksonic56 4:f840ae3a1abd 108 break;
darksonic56 7:630372bb8c15 109 }
darksonic56 4:f840ae3a1abd 110 }
darksonic56 4:f840ae3a1abd 111 partLvl = '0';
darksonic56 4:f840ae3a1abd 112 break;
darksonic56 4:f840ae3a1abd 113
darksonic56 4:f840ae3a1abd 114 case '2': // Digital Potentiometer Setup
darksonic56 4:f840ae3a1abd 115 while(partLvl != '*')
darksonic56 4:f840ae3a1abd 116 {
darksonic56 4:f840ae3a1abd 117 pc.printf("Please select the desired command:\r\n");
darksonic56 7:630372bb8c15 118 pc.printf("0. Set the Output Amplitude to 0 V\r\n");
darksonic56 7:630372bb8c15 119 pc.printf("1. Set the Output Amplitude to 1 V\r\n");
darksonic56 7:630372bb8c15 120 pc.printf("2. Set the Output Amplitude to 2 V\r\n");
darksonic56 7:630372bb8c15 121 pc.printf("3. Set the Output Amplitude to 3 V\r\n");
darksonic56 7:630372bb8c15 122 pc.printf("4. Set the Output Amplitude to 4 V\r\n");
darksonic56 7:630372bb8c15 123 pc.printf("5. Set the Output Amplitude to 5 V\r\n");
darksonic56 7:630372bb8c15 124 pc.printf("6. Increase Output Amplitude\r\n");
darksonic56 7:630372bb8c15 125 pc.printf("7. Decrease output Amplitude\r\n");
darksonic56 4:f840ae3a1abd 126 pc.printf("*: Please return to Main Menu\r\n");
darksonic56 4:f840ae3a1abd 127 pc.printf("\r\n");
darksonic56 4:f840ae3a1abd 128 __wfi();
darksonic56 4:f840ae3a1abd 129 partLvl = Keytable[Index];
darksonic56 8:8155a917d4ec 130 //send(); // sends the CAN message
darksonic56 4:f840ae3a1abd 131 switch(partLvl)
darksonic56 4:f840ae3a1abd 132 {
darksonic56 7:630372bb8c15 133 case '0':
darksonic56 7:630372bb8c15 134 digpotAmp = 0;
darksonic56 7:630372bb8c15 135 pc.printf("Digital Potentiometer Amplitude: %d volts\r\n", digpotAmp);
darksonic56 7:630372bb8c15 136
darksonic56 7:630372bb8c15 137 break;
darksonic56 7:630372bb8c15 138
darksonic56 7:630372bb8c15 139 case '1':
darksonic56 7:630372bb8c15 140
darksonic56 7:630372bb8c15 141 digpotAmp=1;
darksonic56 7:630372bb8c15 142 pc.printf("Digital Potentiometer Amplitude: %d volts\r\n", digpotAmp);
darksonic56 7:630372bb8c15 143
darksonic56 7:630372bb8c15 144 break;
darksonic56 7:630372bb8c15 145
darksonic56 7:630372bb8c15 146 case '2':
darksonic56 7:630372bb8c15 147
darksonic56 7:630372bb8c15 148 digpotAmp=2;
darksonic56 7:630372bb8c15 149 pc.printf("Digital Potentiometer Amplitude: %d volts\r\n", digpotAmp);
darksonic56 7:630372bb8c15 150
darksonic56 7:630372bb8c15 151 break;
darksonic56 7:630372bb8c15 152
darksonic56 7:630372bb8c15 153 case '3':
darksonic56 7:630372bb8c15 154
darksonic56 7:630372bb8c15 155 digpotAmp=3;
darksonic56 7:630372bb8c15 156 pc.printf("Digital Potentiometer Amplitude: %d volts\r\n", digpotAmp);
darksonic56 7:630372bb8c15 157
darksonic56 7:630372bb8c15 158 break;
darksonic56 7:630372bb8c15 159
darksonic56 7:630372bb8c15 160 case '4':
darksonic56 7:630372bb8c15 161
darksonic56 7:630372bb8c15 162 digpotAmp=4;
darksonic56 7:630372bb8c15 163 pc.printf("Digital Potentiometer Amplitude: %d volts\r\n", digpotAmp);
darksonic56 7:630372bb8c15 164
darksonic56 7:630372bb8c15 165 break;
darksonic56 7:630372bb8c15 166
darksonic56 7:630372bb8c15 167 case '5':
darksonic56 7:630372bb8c15 168
darksonic56 7:630372bb8c15 169 digpotAmp=5;
darksonic56 7:630372bb8c15 170 pc.printf("Digital Potentiometer Amplitude: %d volts\r\n", digpotAmp);
darksonic56 7:630372bb8c15 171
darksonic56 7:630372bb8c15 172 break;
darksonic56 4:f840ae3a1abd 173
darksonic56 4:f840ae3a1abd 174 case '6':
darksonic56 4:f840ae3a1abd 175 digpotAmp ++;
darksonic56 4:f840ae3a1abd 176 if (digpotAmp == 6)
darksonic56 4:f840ae3a1abd 177 digpotAmp = 5;
darksonic56 4:f840ae3a1abd 178 pc.printf("Digital Potentiometer Amplitude: %d volts\r\n", digpotAmp);
darksonic56 4:f840ae3a1abd 179 break;
darksonic56 4:f840ae3a1abd 180
darksonic56 7:630372bb8c15 181 case '7':
darksonic56 4:f840ae3a1abd 182 digpotAmp --;
darksonic56 4:f840ae3a1abd 183 if (digpotAmp == -1)
darksonic56 4:f840ae3a1abd 184 digpotAmp = 0;
darksonic56 4:f840ae3a1abd 185 pc.printf("Digital Potentiometer Amplitude: %d volts\r\n", digpotAmp);
darksonic56 4:f840ae3a1abd 186 pc.printf("\r\n");
darksonic56 4:f840ae3a1abd 187 break;
darksonic56 4:f840ae3a1abd 188
darksonic56 4:f840ae3a1abd 189 default:
darksonic56 4:f840ae3a1abd 190 break;
darksonic56 4:f840ae3a1abd 191 }
darksonic56 4:f840ae3a1abd 192 }
darksonic56 7:630372bb8c15 193
darksonic56 4:f840ae3a1abd 194 partLvl = '0';
darksonic56 4:f840ae3a1abd 195 break;
darksonic56 4:f840ae3a1abd 196
darksonic56 4:f840ae3a1abd 197 case '3': // ADC Setup
darksonic56 4:f840ae3a1abd 198 {
darksonic56 7:630372bb8c15 199
darksonic56 4:f840ae3a1abd 200 while(partLvl != '*')
darksonic56 4:f840ae3a1abd 201 {
darksonic56 4:f840ae3a1abd 202 pc.printf("Please select the desired subfunction\r\n");
darksonic56 7:630372bb8c15 203 pc.printf("1. Enable ADC\r\n");
darksonic56 7:630372bb8c15 204 pc.printf("2. Disable ADC\r\n");
darksonic56 4:f840ae3a1abd 205 pc.printf("*: Return to Main Menu\r\n");
darksonic56 4:f840ae3a1abd 206 pc.printf("\r\n");
darksonic56 4:f840ae3a1abd 207 __wfi();
darksonic56 4:f840ae3a1abd 208 partLvl = Keytable[Index];
darksonic56 8:8155a917d4ec 209 //send(); // sends the CAN message
darksonic56 4:f840ae3a1abd 210 switch(partLvl)
darksonic56 4:f840ae3a1abd 211 {
darksonic56 4:f840ae3a1abd 212
darksonic56 7:630372bb8c15 213 case '1':
darksonic56 8:8155a917d4ec 214 counter = 1;
darksonic56 8:8155a917d4ec 215 can1.write(CANMessage(1337, &counter, 1));
darksonic56 4:f840ae3a1abd 216 pc.printf("ADC Enabled\r\n");
darksonic56 4:f840ae3a1abd 217 pc.printf("\r\n");
darksonic56 4:f840ae3a1abd 218 break;
darksonic56 4:f840ae3a1abd 219
darksonic56 7:630372bb8c15 220 case '2':
darksonic56 8:8155a917d4ec 221 counter = 0;
darksonic56 8:8155a917d4ec 222 can1.write(CANMessage(1337, &counter, 1));
darksonic56 4:f840ae3a1abd 223 pc.printf("ADC Disabled\r\n");
darksonic56 4:f840ae3a1abd 224 pc.printf("\r\n");
darksonic56 4:f840ae3a1abd 225 break;
darksonic56 4:f840ae3a1abd 226
darksonic56 4:f840ae3a1abd 227 default:
darksonic56 4:f840ae3a1abd 228 break;
darksonic56 4:f840ae3a1abd 229 }
darksonic56 4:f840ae3a1abd 230 }
darksonic56 4:f840ae3a1abd 231 partLvl = '0';
darksonic56 4:f840ae3a1abd 232 break;
darksonic56 4:f840ae3a1abd 233 }
darksonic56 7:630372bb8c15 234 }
darksonic56 3:a88e77be7ed9 235 }
darksonic56 8:8155a917d4ec 236 }