Mercurial > louis > kiibohd-controller
annotate Scan/matrix/matrix_scan.h @ 341:66eccdd9ced5
Code cleanup
- Changing header file ifndef define to pragma once's
- Removed duplicate output_com.h's
author | Jacob Alexander <haata@kiibohd.com> |
---|---|
date | Sun, 14 Jun 2015 13:56:56 -0700 |
parents | 0c5d1fe99302 |
children |
rev | line source |
---|---|
341 | 1 /* Copyright (C) 2011,2014-2015 by Jacob Alexander |
123
0c5d1fe99302
Adding CLI and CDC Serial support for Teensy 2.0 and Teensy 2.0++
Jacob Alexander <haata@kiibohd.com>
parents:
52
diff
changeset
|
2 * |
27
8b8cad3db8db
Basic matrix module for the hall effect keypad now working.
Jacob Alexander <triplehaata@gmail.com>
parents:
diff
changeset
|
3 * Permission is hereby granted, free of charge, to any person obtaining a copy |
8b8cad3db8db
Basic matrix module for the hall effect keypad now working.
Jacob Alexander <triplehaata@gmail.com>
parents:
diff
changeset
|
4 * of this software and associated documentation files (the "Software"), to deal |
8b8cad3db8db
Basic matrix module for the hall effect keypad now working.
Jacob Alexander <triplehaata@gmail.com>
parents:
diff
changeset
|
5 * in the Software without restriction, including without limitation the rights |
8b8cad3db8db
Basic matrix module for the hall effect keypad now working.
Jacob Alexander <triplehaata@gmail.com>
parents:
diff
changeset
|
6 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell |
8b8cad3db8db
Basic matrix module for the hall effect keypad now working.
Jacob Alexander <triplehaata@gmail.com>
parents:
diff
changeset
|
7 * copies of the Software, and to permit persons to whom the Software is |
8b8cad3db8db
Basic matrix module for the hall effect keypad now working.
Jacob Alexander <triplehaata@gmail.com>
parents:
diff
changeset
|
8 * furnished to do so, subject to the following conditions: |
123
0c5d1fe99302
Adding CLI and CDC Serial support for Teensy 2.0 and Teensy 2.0++
Jacob Alexander <haata@kiibohd.com>
parents:
52
diff
changeset
|
9 * |
27
8b8cad3db8db
Basic matrix module for the hall effect keypad now working.
Jacob Alexander <triplehaata@gmail.com>
parents:
diff
changeset
|
10 * The above copyright notice and this permission notice shall be included in |
8b8cad3db8db
Basic matrix module for the hall effect keypad now working.
Jacob Alexander <triplehaata@gmail.com>
parents:
diff
changeset
|
11 * all copies or substantial portions of the Software. |
123
0c5d1fe99302
Adding CLI and CDC Serial support for Teensy 2.0 and Teensy 2.0++
Jacob Alexander <haata@kiibohd.com>
parents:
52
diff
changeset
|
12 * |
27
8b8cad3db8db
Basic matrix module for the hall effect keypad now working.
Jacob Alexander <triplehaata@gmail.com>
parents:
diff
changeset
|
13 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
8b8cad3db8db
Basic matrix module for the hall effect keypad now working.
Jacob Alexander <triplehaata@gmail.com>
parents:
diff
changeset
|
14 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
8b8cad3db8db
Basic matrix module for the hall effect keypad now working.
Jacob Alexander <triplehaata@gmail.com>
parents:
diff
changeset
|
15 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE |
8b8cad3db8db
Basic matrix module for the hall effect keypad now working.
Jacob Alexander <triplehaata@gmail.com>
parents:
diff
changeset
|
16 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
8b8cad3db8db
Basic matrix module for the hall effect keypad now working.
Jacob Alexander <triplehaata@gmail.com>
parents:
diff
changeset
|
17 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, |
8b8cad3db8db
Basic matrix module for the hall effect keypad now working.
Jacob Alexander <triplehaata@gmail.com>
parents:
diff
changeset
|
18 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN |
8b8cad3db8db
Basic matrix module for the hall effect keypad now working.
Jacob Alexander <triplehaata@gmail.com>
parents:
diff
changeset
|
19 * THE SOFTWARE. |
8b8cad3db8db
Basic matrix module for the hall effect keypad now working.
Jacob Alexander <triplehaata@gmail.com>
parents:
diff
changeset
|
20 */ |
8b8cad3db8db
Basic matrix module for the hall effect keypad now working.
Jacob Alexander <triplehaata@gmail.com>
parents:
diff
changeset
|
21 |
341 | 22 #pragma once |
27
8b8cad3db8db
Basic matrix module for the hall effect keypad now working.
Jacob Alexander <triplehaata@gmail.com>
parents:
diff
changeset
|
23 |
8b8cad3db8db
Basic matrix module for the hall effect keypad now working.
Jacob Alexander <triplehaata@gmail.com>
parents:
diff
changeset
|
24 // ----- Includes ----- |
8b8cad3db8db
Basic matrix module for the hall effect keypad now working.
Jacob Alexander <triplehaata@gmail.com>
parents:
diff
changeset
|
25 |
8b8cad3db8db
Basic matrix module for the hall effect keypad now working.
Jacob Alexander <triplehaata@gmail.com>
parents:
diff
changeset
|
26 // Compiler Includes |
8b8cad3db8db
Basic matrix module for the hall effect keypad now working.
Jacob Alexander <triplehaata@gmail.com>
parents:
diff
changeset
|
27 #include <stdint.h> |
8b8cad3db8db
Basic matrix module for the hall effect keypad now working.
Jacob Alexander <triplehaata@gmail.com>
parents:
diff
changeset
|
28 |
8b8cad3db8db
Basic matrix module for the hall effect keypad now working.
Jacob Alexander <triplehaata@gmail.com>
parents:
diff
changeset
|
29 // Local Includes |
8b8cad3db8db
Basic matrix module for the hall effect keypad now working.
Jacob Alexander <triplehaata@gmail.com>
parents:
diff
changeset
|
30 |
8b8cad3db8db
Basic matrix module for the hall effect keypad now working.
Jacob Alexander <triplehaata@gmail.com>
parents:
diff
changeset
|
31 |
8b8cad3db8db
Basic matrix module for the hall effect keypad now working.
Jacob Alexander <triplehaata@gmail.com>
parents:
diff
changeset
|
32 |
8b8cad3db8db
Basic matrix module for the hall effect keypad now working.
Jacob Alexander <triplehaata@gmail.com>
parents:
diff
changeset
|
33 // ----- Defines ----- |
8b8cad3db8db
Basic matrix module for the hall effect keypad now working.
Jacob Alexander <triplehaata@gmail.com>
parents:
diff
changeset
|
34 |
8b8cad3db8db
Basic matrix module for the hall effect keypad now working.
Jacob Alexander <triplehaata@gmail.com>
parents:
diff
changeset
|
35 // ----- Quick Map (don't change) ----- |
8b8cad3db8db
Basic matrix module for the hall effect keypad now working.
Jacob Alexander <triplehaata@gmail.com>
parents:
diff
changeset
|
36 #define pinA0 0 |
8b8cad3db8db
Basic matrix module for the hall effect keypad now working.
Jacob Alexander <triplehaata@gmail.com>
parents:
diff
changeset
|
37 #define pinA1 1 |
8b8cad3db8db
Basic matrix module for the hall effect keypad now working.
Jacob Alexander <triplehaata@gmail.com>
parents:
diff
changeset
|
38 #define pinA2 2 |
8b8cad3db8db
Basic matrix module for the hall effect keypad now working.
Jacob Alexander <triplehaata@gmail.com>
parents:
diff
changeset
|
39 #define pinA3 3 |
8b8cad3db8db
Basic matrix module for the hall effect keypad now working.
Jacob Alexander <triplehaata@gmail.com>
parents:
diff
changeset
|
40 #define pinA4 4 |
8b8cad3db8db
Basic matrix module for the hall effect keypad now working.
Jacob Alexander <triplehaata@gmail.com>
parents:
diff
changeset
|
41 #define pinA5 5 |
8b8cad3db8db
Basic matrix module for the hall effect keypad now working.
Jacob Alexander <triplehaata@gmail.com>
parents:
diff
changeset
|
42 #define pinA6 6 |
8b8cad3db8db
Basic matrix module for the hall effect keypad now working.
Jacob Alexander <triplehaata@gmail.com>
parents:
diff
changeset
|
43 #define pinA7 7 |
8b8cad3db8db
Basic matrix module for the hall effect keypad now working.
Jacob Alexander <triplehaata@gmail.com>
parents:
diff
changeset
|
44 |
8b8cad3db8db
Basic matrix module for the hall effect keypad now working.
Jacob Alexander <triplehaata@gmail.com>
parents:
diff
changeset
|
45 #define pinB0 10 |
8b8cad3db8db
Basic matrix module for the hall effect keypad now working.
Jacob Alexander <triplehaata@gmail.com>
parents:
diff
changeset
|
46 #define pinB1 11 |
8b8cad3db8db
Basic matrix module for the hall effect keypad now working.
Jacob Alexander <triplehaata@gmail.com>
parents:
diff
changeset
|
47 #define pinB2 12 |
8b8cad3db8db
Basic matrix module for the hall effect keypad now working.
Jacob Alexander <triplehaata@gmail.com>
parents:
diff
changeset
|
48 #define pinB3 13 |
8b8cad3db8db
Basic matrix module for the hall effect keypad now working.
Jacob Alexander <triplehaata@gmail.com>
parents:
diff
changeset
|
49 #define pinB4 14 |
8b8cad3db8db
Basic matrix module for the hall effect keypad now working.
Jacob Alexander <triplehaata@gmail.com>
parents:
diff
changeset
|
50 #define pinB5 15 |
8b8cad3db8db
Basic matrix module for the hall effect keypad now working.
Jacob Alexander <triplehaata@gmail.com>
parents:
diff
changeset
|
51 #define pinB6 16 |
8b8cad3db8db
Basic matrix module for the hall effect keypad now working.
Jacob Alexander <triplehaata@gmail.com>
parents:
diff
changeset
|
52 #define pinB7 17 |
8b8cad3db8db
Basic matrix module for the hall effect keypad now working.
Jacob Alexander <triplehaata@gmail.com>
parents:
diff
changeset
|
53 |
8b8cad3db8db
Basic matrix module for the hall effect keypad now working.
Jacob Alexander <triplehaata@gmail.com>
parents:
diff
changeset
|
54 #define pinC0 20 |
8b8cad3db8db
Basic matrix module for the hall effect keypad now working.
Jacob Alexander <triplehaata@gmail.com>
parents:
diff
changeset
|
55 #define pinC1 21 |
8b8cad3db8db
Basic matrix module for the hall effect keypad now working.
Jacob Alexander <triplehaata@gmail.com>
parents:
diff
changeset
|
56 #define pinC2 22 |
8b8cad3db8db
Basic matrix module for the hall effect keypad now working.
Jacob Alexander <triplehaata@gmail.com>
parents:
diff
changeset
|
57 #define pinC3 23 |
8b8cad3db8db
Basic matrix module for the hall effect keypad now working.
Jacob Alexander <triplehaata@gmail.com>
parents:
diff
changeset
|
58 #define pinC4 24 |
8b8cad3db8db
Basic matrix module for the hall effect keypad now working.
Jacob Alexander <triplehaata@gmail.com>
parents:
diff
changeset
|
59 #define pinC5 25 |
8b8cad3db8db
Basic matrix module for the hall effect keypad now working.
Jacob Alexander <triplehaata@gmail.com>
parents:
diff
changeset
|
60 #define pinC6 26 |
8b8cad3db8db
Basic matrix module for the hall effect keypad now working.
Jacob Alexander <triplehaata@gmail.com>
parents:
diff
changeset
|
61 #define pinC7 27 |
8b8cad3db8db
Basic matrix module for the hall effect keypad now working.
Jacob Alexander <triplehaata@gmail.com>
parents:
diff
changeset
|
62 |
8b8cad3db8db
Basic matrix module for the hall effect keypad now working.
Jacob Alexander <triplehaata@gmail.com>
parents:
diff
changeset
|
63 #define pinD0 30 |
8b8cad3db8db
Basic matrix module for the hall effect keypad now working.
Jacob Alexander <triplehaata@gmail.com>
parents:
diff
changeset
|
64 #define pinD1 31 |
8b8cad3db8db
Basic matrix module for the hall effect keypad now working.
Jacob Alexander <triplehaata@gmail.com>
parents:
diff
changeset
|
65 #define pinD2 32 |
8b8cad3db8db
Basic matrix module for the hall effect keypad now working.
Jacob Alexander <triplehaata@gmail.com>
parents:
diff
changeset
|
66 #define pinD3 33 |
8b8cad3db8db
Basic matrix module for the hall effect keypad now working.
Jacob Alexander <triplehaata@gmail.com>
parents:
diff
changeset
|
67 #define pinD4 34 |
8b8cad3db8db
Basic matrix module for the hall effect keypad now working.
Jacob Alexander <triplehaata@gmail.com>
parents:
diff
changeset
|
68 #define pinD5 35 |
8b8cad3db8db
Basic matrix module for the hall effect keypad now working.
Jacob Alexander <triplehaata@gmail.com>
parents:
diff
changeset
|
69 #define pinD6 36 |
8b8cad3db8db
Basic matrix module for the hall effect keypad now working.
Jacob Alexander <triplehaata@gmail.com>
parents:
diff
changeset
|
70 #define pinD7 37 |
8b8cad3db8db
Basic matrix module for the hall effect keypad now working.
Jacob Alexander <triplehaata@gmail.com>
parents:
diff
changeset
|
71 |
8b8cad3db8db
Basic matrix module for the hall effect keypad now working.
Jacob Alexander <triplehaata@gmail.com>
parents:
diff
changeset
|
72 #define pinE0 40 |
8b8cad3db8db
Basic matrix module for the hall effect keypad now working.
Jacob Alexander <triplehaata@gmail.com>
parents:
diff
changeset
|
73 #define pinE1 41 |
8b8cad3db8db
Basic matrix module for the hall effect keypad now working.
Jacob Alexander <triplehaata@gmail.com>
parents:
diff
changeset
|
74 #define pinE2 42 |
8b8cad3db8db
Basic matrix module for the hall effect keypad now working.
Jacob Alexander <triplehaata@gmail.com>
parents:
diff
changeset
|
75 #define pinE3 43 |
8b8cad3db8db
Basic matrix module for the hall effect keypad now working.
Jacob Alexander <triplehaata@gmail.com>
parents:
diff
changeset
|
76 #define pinE4 44 |
8b8cad3db8db
Basic matrix module for the hall effect keypad now working.
Jacob Alexander <triplehaata@gmail.com>
parents:
diff
changeset
|
77 #define pinE5 45 |
8b8cad3db8db
Basic matrix module for the hall effect keypad now working.
Jacob Alexander <triplehaata@gmail.com>
parents:
diff
changeset
|
78 #define pinE6 46 |
8b8cad3db8db
Basic matrix module for the hall effect keypad now working.
Jacob Alexander <triplehaata@gmail.com>
parents:
diff
changeset
|
79 #define pinE7 47 |
8b8cad3db8db
Basic matrix module for the hall effect keypad now working.
Jacob Alexander <triplehaata@gmail.com>
parents:
diff
changeset
|
80 |
8b8cad3db8db
Basic matrix module for the hall effect keypad now working.
Jacob Alexander <triplehaata@gmail.com>
parents:
diff
changeset
|
81 #define pinF0 50 |
8b8cad3db8db
Basic matrix module for the hall effect keypad now working.
Jacob Alexander <triplehaata@gmail.com>
parents:
diff
changeset
|
82 #define pinF1 51 |
8b8cad3db8db
Basic matrix module for the hall effect keypad now working.
Jacob Alexander <triplehaata@gmail.com>
parents:
diff
changeset
|
83 #define pinF2 52 |
8b8cad3db8db
Basic matrix module for the hall effect keypad now working.
Jacob Alexander <triplehaata@gmail.com>
parents:
diff
changeset
|
84 #define pinF3 53 |
8b8cad3db8db
Basic matrix module for the hall effect keypad now working.
Jacob Alexander <triplehaata@gmail.com>
parents:
diff
changeset
|
85 #define pinF4 54 |
8b8cad3db8db
Basic matrix module for the hall effect keypad now working.
Jacob Alexander <triplehaata@gmail.com>
parents:
diff
changeset
|
86 #define pinF5 55 |
8b8cad3db8db
Basic matrix module for the hall effect keypad now working.
Jacob Alexander <triplehaata@gmail.com>
parents:
diff
changeset
|
87 #define pinF6 56 |
8b8cad3db8db
Basic matrix module for the hall effect keypad now working.
Jacob Alexander <triplehaata@gmail.com>
parents:
diff
changeset
|
88 #define pinF7 57 |
8b8cad3db8db
Basic matrix module for the hall effect keypad now working.
Jacob Alexander <triplehaata@gmail.com>
parents:
diff
changeset
|
89 |
8b8cad3db8db
Basic matrix module for the hall effect keypad now working.
Jacob Alexander <triplehaata@gmail.com>
parents:
diff
changeset
|
90 #define pinNULL 128 |
8b8cad3db8db
Basic matrix module for the hall effect keypad now working.
Jacob Alexander <triplehaata@gmail.com>
parents:
diff
changeset
|
91 |
8b8cad3db8db
Basic matrix module for the hall effect keypad now working.
Jacob Alexander <triplehaata@gmail.com>
parents:
diff
changeset
|
92 |
8b8cad3db8db
Basic matrix module for the hall effect keypad now working.
Jacob Alexander <triplehaata@gmail.com>
parents:
diff
changeset
|
93 |
8b8cad3db8db
Basic matrix module for the hall effect keypad now working.
Jacob Alexander <triplehaata@gmail.com>
parents:
diff
changeset
|
94 // ----- Scan Mode (usually dual-scan) ----- |
8b8cad3db8db
Basic matrix module for the hall effect keypad now working.
Jacob Alexander <triplehaata@gmail.com>
parents:
diff
changeset
|
95 // Ordered by increasing memory/CPU usage |
8b8cad3db8db
Basic matrix module for the hall effect keypad now working.
Jacob Alexander <triplehaata@gmail.com>
parents:
diff
changeset
|
96 #define scanRow 0 // Needed for powered switches (Hall-Effect) |
8b8cad3db8db
Basic matrix module for the hall effect keypad now working.
Jacob Alexander <triplehaata@gmail.com>
parents:
diff
changeset
|
97 #define scanCol 1 // Opposite of scanRow |
8b8cad3db8db
Basic matrix module for the hall effect keypad now working.
Jacob Alexander <triplehaata@gmail.com>
parents:
diff
changeset
|
98 #define scanRow_powrCol 2 // NKRO supported matrix (simple detection) |
8b8cad3db8db
Basic matrix module for the hall effect keypad now working.
Jacob Alexander <triplehaata@gmail.com>
parents:
diff
changeset
|
99 #define scanCol_powrRow 3 // Opposite of scanRow_powrCol |
8b8cad3db8db
Basic matrix module for the hall effect keypad now working.
Jacob Alexander <triplehaata@gmail.com>
parents:
diff
changeset
|
100 #define scanDual 4 // Typical ~2KRO matrix |
8b8cad3db8db
Basic matrix module for the hall effect keypad now working.
Jacob Alexander <triplehaata@gmail.com>
parents:
diff
changeset
|
101 |
52
689e131c5a4b
Adding SKM67001 scan module.
Jacob Alexander <triplehaata@gmail.com>
parents:
36
diff
changeset
|
102 #define powrRow 5 // Matrix setup for powering a row, initially the row would be set low |
689e131c5a4b
Adding SKM67001 scan module.
Jacob Alexander <triplehaata@gmail.com>
parents:
36
diff
changeset
|
103 #define powrCol 6 // Like powrRow but for columns |
689e131c5a4b
Adding SKM67001 scan module.
Jacob Alexander <triplehaata@gmail.com>
parents:
36
diff
changeset
|
104 |
689e131c5a4b
Adding SKM67001 scan module.
Jacob Alexander <triplehaata@gmail.com>
parents:
36
diff
changeset
|
105 |
689e131c5a4b
Adding SKM67001 scan module.
Jacob Alexander <triplehaata@gmail.com>
parents:
36
diff
changeset
|
106 // ----- Direction ----- |
689e131c5a4b
Adding SKM67001 scan module.
Jacob Alexander <triplehaata@gmail.com>
parents:
36
diff
changeset
|
107 #define columnSet 0 // PIN_SET_COL for PIN_SET |
689e131c5a4b
Adding SKM67001 scan module.
Jacob Alexander <triplehaata@gmail.com>
parents:
36
diff
changeset
|
108 #define rowSet 1 // PIN_SET_ROW for PIN_SET |
689e131c5a4b
Adding SKM67001 scan module.
Jacob Alexander <triplehaata@gmail.com>
parents:
36
diff
changeset
|
109 |
27
8b8cad3db8db
Basic matrix module for the hall effect keypad now working.
Jacob Alexander <triplehaata@gmail.com>
parents:
diff
changeset
|
110 |
8b8cad3db8db
Basic matrix module for the hall effect keypad now working.
Jacob Alexander <triplehaata@gmail.com>
parents:
diff
changeset
|
111 |
8b8cad3db8db
Basic matrix module for the hall effect keypad now working.
Jacob Alexander <triplehaata@gmail.com>
parents:
diff
changeset
|
112 // ----- Variables ----- |
8b8cad3db8db
Basic matrix module for the hall effect keypad now working.
Jacob Alexander <triplehaata@gmail.com>
parents:
diff
changeset
|
113 |
8b8cad3db8db
Basic matrix module for the hall effect keypad now working.
Jacob Alexander <triplehaata@gmail.com>
parents:
diff
changeset
|
114 |
8b8cad3db8db
Basic matrix module for the hall effect keypad now working.
Jacob Alexander <triplehaata@gmail.com>
parents:
diff
changeset
|
115 |
8b8cad3db8db
Basic matrix module for the hall effect keypad now working.
Jacob Alexander <triplehaata@gmail.com>
parents:
diff
changeset
|
116 // ----- Functions ----- |
8b8cad3db8db
Basic matrix module for the hall effect keypad now working.
Jacob Alexander <triplehaata@gmail.com>
parents:
diff
changeset
|
117 |
36
00a06e011158
Pre Tandy1000 overhaul
Jacob Alexander <triplehaata@gmail.com>
parents:
27
diff
changeset
|
118 void matrix_pinSetup( uint8_t *matrix, uint8_t scanType ); |
27
8b8cad3db8db
Basic matrix module for the hall effect keypad now working.
Jacob Alexander <triplehaata@gmail.com>
parents:
diff
changeset
|
119 void matrix_scan( uint8_t *matrix, uint8_t *detectArray ); |
8b8cad3db8db
Basic matrix module for the hall effect keypad now working.
Jacob Alexander <triplehaata@gmail.com>
parents:
diff
changeset
|
120 |