8x8 row connectivity test with two multiplexers, onboard ADC and DAC.

Dependencies:   USBDevice mbed

Committer:
fil
Date:
Fri Nov 14 01:29:46 2014 +0000
Revision:
0:9efc3fc4d289
LaTe connectivity scan with 8x8 multiplexers, on-board ADC and DAC.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
fil 0:9efc3fc4d289 1 #include "mbed.h"
fil 0:9efc3fc4d289 2 #include "USBKeyboard.h"
fil 0:9efc3fc4d289 3
fil 0:9efc3fc4d289 4 DigitalOut A_in(D0);
fil 0:9efc3fc4d289 5 DigitalOut B_in(D1);
fil 0:9efc3fc4d289 6 DigitalOut C_in(D2);
fil 0:9efc3fc4d289 7
fil 0:9efc3fc4d289 8 DigitalOut A_out(PTC7);
fil 0:9efc3fc4d289 9 DigitalOut B_out(PTC0);
fil 0:9efc3fc4d289 10 DigitalOut C_out(PTC3);
fil 0:9efc3fc4d289 11
fil 0:9efc3fc4d289 12 AnalogOut dac(PTE30);
fil 0:9efc3fc4d289 13 AnalogIn adc(PTB0);
fil 0:9efc3fc4d289 14
fil 0:9efc3fc4d289 15 USBKeyboard keyboard;
fil 0:9efc3fc4d289 16
fil 0:9efc3fc4d289 17 int main () {
fil 0:9efc3fc4d289 18 float test_val = .001;
fil 0:9efc3fc4d289 19 int con_mat[8][8] = {};
fil 0:9efc3fc4d289 20 int a1,b1,c1,a2,b2,c2;
fil 0:9efc3fc4d289 21 //dac = test_val;
fil 0:9efc3fc4d289 22
fil 0:9efc3fc4d289 23 for (int x = 0; x < 8; x++) {
fil 0:9efc3fc4d289 24 for (int y = 0; y < 8; y++) {
fil 0:9efc3fc4d289 25 // Stupid logic to convert count value to binary...
fil 0:9efc3fc4d289 26 A_in = x%2; a1 = x%2;
fil 0:9efc3fc4d289 27 B_in = (x/2)%2; b1 = (x/2)%2;
fil 0:9efc3fc4d289 28 C_in = (x/4)%2; c1 = (x/4)%2;
fil 0:9efc3fc4d289 29
fil 0:9efc3fc4d289 30 A_out = y%2; int a2 = y%2;
fil 0:9efc3fc4d289 31 B_out = (y/2)%2; b2 = (y/2)%2;
fil 0:9efc3fc4d289 32 C_out = (y/4)%2; c2 = (y/4)%2;
fil 0:9efc3fc4d289 33
fil 0:9efc3fc4d289 34 // Now we do the scan test, results are stored in con_mat
fil 0:9efc3fc4d289 35 //wait(0.01);
fil 0:9efc3fc4d289 36 dac = test_val;
fil 0:9efc3fc4d289 37 float in_val = adc.read();
fil 0:9efc3fc4d289 38
fil 0:9efc3fc4d289 39 if ((in_val > .0015) && (in_val < .0025))
fil 0:9efc3fc4d289 40 con_mat[x][y] = 1;
fil 0:9efc3fc4d289 41 else
fil 0:9efc3fc4d289 42 con_mat[x][y] = 0;
fil 0:9efc3fc4d289 43
fil 0:9efc3fc4d289 44 keyboard.printf("%f %f \n",dac.read(),in_val);
fil 0:9efc3fc4d289 45 //keyboard.printf("%d %d %d\n",a2,b2,c2);
fil 0:9efc3fc4d289 46 }
fil 0:9efc3fc4d289 47 }
fil 0:9efc3fc4d289 48
fil 0:9efc3fc4d289 49 for (int x=0;x<8;x++) {
fil 0:9efc3fc4d289 50 for (int y=0;y<8;y++) {
fil 0:9efc3fc4d289 51 keyboard.printf("%d ",con_mat[x][y]);
fil 0:9efc3fc4d289 52 }
fil 0:9efc3fc4d289 53 }
fil 0:9efc3fc4d289 54
fil 0:9efc3fc4d289 55 }