Hideto KIHARA / Mbed 2 deprecated KeyMatrixAnalyzer

Dependencies:   mbed

Committer:
deton
Date:
Sat Mar 18 07:46:11 2017 +0000
Revision:
0:9ae9d1744fe4
Child:
1:00109a338de8
initial commit

Who changed what in which revision?

UserRevisionLine numberNew contents of line
deton 0:9ae9d1744fe4 1 // KeyMatrixAnalyzer for TrackPoint Keyboard USB English 0B47190
deton 0:9ae9d1744fe4 2 #include "mbed.h"
deton 0:9ae9d1744fe4 3
deton 0:9ae9d1744fe4 4 // R1 R7 R6 S9 R4 R5 S0 R2 R3 S5 S1 R0 S2 S4 S7 S8 S6 S3 S12 S13 S14 S11 S10 S15 M0 ML MM MR
deton 0:9ae9d1744fe4 5 /*
deton 0:9ae9d1744fe4 6 DigitalIn r1(p20); DigitalIn r7(p17);
deton 0:9ae9d1744fe4 7 DigitalIn r6(p19); DigitalOut s9(p16);
deton 0:9ae9d1744fe4 8 DigitalIn r4(p18); DigitalIn r5(p15);
deton 0:9ae9d1744fe4 9 DigitalOut s0(p21); DigitalIn r2(p14);
deton 0:9ae9d1744fe4 10 DigitalIn r3(p22); DigitalOut s5(p13);
deton 0:9ae9d1744fe4 11 DigitalOut s1(p23); DigitalIn r0(p12);
deton 0:9ae9d1744fe4 12 DigitalOut s2(p24); DigitalOut s4(p11);
deton 0:9ae9d1744fe4 13 DigitalOut s7(p25); DigitalOut s8(p10);
deton 0:9ae9d1744fe4 14 DigitalOut s6(p26); DigitalOut s3(p9);
deton 0:9ae9d1744fe4 15 DigitalOut s12(p27); DigitalOut s13(p8);
deton 0:9ae9d1744fe4 16 DigitalOut s14(p28); DigitalOut s11(p7);
deton 0:9ae9d1744fe4 17 DigitalOut s10(p29); DigitalOut s15(p6);
deton 0:9ae9d1744fe4 18 */
deton 0:9ae9d1744fe4 19 const int RPINLEN = 8;
deton 0:9ae9d1744fe4 20 const int SPINLEN = 16;
deton 0:9ae9d1744fe4 21 DigitalIn rpin[RPINLEN] = {p12, p20, p14, p22, p18, p15, p19, p17};
deton 0:9ae9d1744fe4 22 DigitalOut spin[SPINLEN] = {p21, p23, p24, p9, p11, p13, p26, p25, p10, p16, p29, p7, p27, p8, p28, p6};
deton 0:9ae9d1744fe4 23 /*
deton 0:9ae9d1744fe4 24 // r0 r1 r2 r3 s0 s1 r4 r5 r6 r7 s2 s3 s4 s5 s6 s7 s8 s9 s10 s11 s12 s13 s14 s15 s16 s17
deton 0:9ae9d1744fe4 25 // 20 17 19 16 18 15 21 14 22 13 23 12 24 11 25 10 26 9 27 8 28 7 29 6 30 5
deton 0:9ae9d1744fe4 26 DigitalIn rpin[RPINLEN] = {p20, p17, p19, p16, p21, p14, p22, p13};
deton 0:9ae9d1744fe4 27 DigitalOut spin[SPINLEN] = {p18, p15, p23, p12, p24, p11, p25, p10, p26, p9, p27, p8, p28, p7, p29, p6, p30, p5};
deton 0:9ae9d1744fe4 28 */
deton 0:9ae9d1744fe4 29
deton 0:9ae9d1744fe4 30 Serial pc(USBTX, USBRX);
deton 0:9ae9d1744fe4 31
deton 0:9ae9d1744fe4 32 int prevs = -1;
deton 0:9ae9d1744fe4 33 int prevr = -1;
deton 0:9ae9d1744fe4 34
deton 0:9ae9d1744fe4 35 void loop() {
deton 0:9ae9d1744fe4 36 for (int s = 0; s < SPINLEN; s++) {
deton 0:9ae9d1744fe4 37 spin[s] = 0;
deton 0:9ae9d1744fe4 38 wait_ms(5);
deton 0:9ae9d1744fe4 39 for (int r = 0; r < RPINLEN; r++) {
deton 0:9ae9d1744fe4 40 if (rpin[r] == 0) {
deton 0:9ae9d1744fe4 41 if (prevs == s && prevr == r) {
deton 0:9ae9d1744fe4 42 continue;
deton 0:9ae9d1744fe4 43 }
deton 0:9ae9d1744fe4 44 prevs = s;
deton 0:9ae9d1744fe4 45 prevr = r;
deton 0:9ae9d1744fe4 46 pc.printf(" %d %d\r\n", s, r);
deton 0:9ae9d1744fe4 47 }
deton 0:9ae9d1744fe4 48 }
deton 0:9ae9d1744fe4 49 spin[s] = 1;
deton 0:9ae9d1744fe4 50 }
deton 0:9ae9d1744fe4 51 }
deton 0:9ae9d1744fe4 52
deton 0:9ae9d1744fe4 53 int main() {
deton 0:9ae9d1744fe4 54 for (int r = 0; r < RPINLEN; r++) {
deton 0:9ae9d1744fe4 55 rpin[r].mode(PullUp);
deton 0:9ae9d1744fe4 56 }
deton 0:9ae9d1744fe4 57 for (int s = 0; s < SPINLEN; s++) {
deton 0:9ae9d1744fe4 58 spin[s] = 1;
deton 0:9ae9d1744fe4 59 }
deton 0:9ae9d1744fe4 60
deton 0:9ae9d1744fe4 61 while (true) {
deton 0:9ae9d1744fe4 62 loop();
deton 0:9ae9d1744fe4 63 }
deton 0:9ae9d1744fe4 64 }