Interactive Device Design
/
LaTe_mux_test_8_to_8
8x8 row connectivity test with two multiplexers, onboard ADC and DAC.
main.cpp@0:9efc3fc4d289, 2014-11-14 (annotated)
- 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?
User | Revision | Line number | New 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 | } |