KeyMatrixAnalyzer for TrackPoint Keyboard USB English 0B47190

Dependencies:   mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 // KeyMatrixAnalyzer for TrackPoint Keyboard USB English 0B47190
00002 #include "mbed.h"
00003 
00004 // 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
00005 const int RPINLEN = 8;
00006 const int SPINLEN = 16;
00007 DigitalIn rpin[RPINLEN] = {p12, p20, p14, p22, p18, p15, p19, p17};
00008 DigitalOut spin[SPINLEN] = {p21, p23, p24, p9, p11, p13, p26, p25, p10, p16, p29, p7, p27, p8, p28, p6};
00009 
00010 Serial pc(USBTX, USBRX);
00011 
00012 int prevs = -1;
00013 int prevr = -1;
00014 
00015 void loop() {
00016     for (int s = 0; s < SPINLEN; s++) {
00017         spin[s] = 0;
00018         wait_ms(5);
00019         for (int r = 0; r < RPINLEN; r++) {
00020             if (rpin[r] == 0) {
00021                 if (prevs == s && prevr == r) {
00022                     continue;
00023                 }
00024                 prevs = s;
00025                 prevr = r;
00026                 pc.printf(" %d %d\r\n", s, r);
00027             }
00028         }
00029         spin[s] = 1;
00030     }
00031 }
00032 
00033 int main() {
00034     for (int r = 0; r < RPINLEN; r++) {
00035         rpin[r].mode(PullUp);
00036     }
00037     for (int s = 0; s < SPINLEN; s++) {
00038         spin[s] = 1;
00039     }
00040 
00041     while (true) {
00042         loop();
00043     }
00044 }