blob: 1d1a7c2b006029894dce2696b9d0325f6c107a79 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
|
#include QMK_KEYBOARD_H
#include "i2c_master.h"
#include "debug.h"
#define TIMEOUT 50
// TODO: remove patch
#ifdef PROTOCOL_CHIBIOS
# pragma message("ChibiOS is currently 'best effort' and might not report accurate results")
#endif
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
LAYOUT_ortho_1x1(KC_A)
};
void do_scan(void) {
uint8_t nDevices = 0;
dprintf("Scanning...\n");
for (uint8_t address = 1; address < 127; address++) {
// The i2c_scanner uses the return value of
// i2c_ping_address to see if a device did acknowledge to the address.
i2c_status_t error = i2c_ping_address(address << 1, TIMEOUT);
if (error == I2C_STATUS_SUCCESS) {
dprintf(" I2C device found at address 0x%02X\n", address);
nDevices++;
} else {
// dprintf(" Unknown error (%u) at address 0x%02X\n", error, address);
}
}
if (nDevices == 0)
dprintf("No I2C devices found\n");
else
dprintf("done\n");
}
uint16_t scan_timer = 0;
void matrix_scan_user(void) {
if (timer_elapsed(scan_timer) > 5000) {
do_scan();
scan_timer = timer_read();
}
}
void keyboard_post_init_user(void) {
debug_enable = true;
debug_matrix = true;
i2c_init();
scan_timer = timer_read();
}
|