diff options
Diffstat (limited to 'keyboard/infinity/main.cpp')
| -rw-r--r-- | keyboard/infinity/main.cpp | 38 |
1 files changed, 31 insertions, 7 deletions
diff --git a/keyboard/infinity/main.cpp b/keyboard/infinity/main.cpp index f28840d3e..847668a1d 100644 --- a/keyboard/infinity/main.cpp +++ b/keyboard/infinity/main.cpp | |||
| @@ -1,20 +1,44 @@ | |||
| 1 | //#include "mbed.h" | ||
| 2 | #include "MK20D5.h" | 1 | #include "MK20D5.h" |
| 3 | #include "wait.h" | 2 | #include "wait.h" |
| 4 | #include "gpio_api.h" | 3 | #include "gpio_api.h" |
| 5 | #include "PinNames.h" | 4 | #include "PinNames.h" |
| 5 | #include "matrix.h" | ||
| 6 | #include "timer.h" | ||
| 7 | |||
| 8 | #include "action.h" | ||
| 9 | #include "keycode.h" | ||
| 10 | #include "host.h" | ||
| 11 | #include "host_driver.h" | ||
| 12 | #include "mbed_driver.h" | ||
| 6 | 13 | ||
| 7 | 14 | ||
| 8 | int main() { | 15 | int main() { |
| 9 | gpio_t led; | 16 | gpio_t led; |
| 10 | gpio_init_out(&led, PTA19); | 17 | gpio_init_out(&led, PTA19); |
| 18 | |||
| 19 | uint16_t t = 0; | ||
| 20 | |||
| 21 | host_set_driver(&mbed_driver); | ||
| 22 | keyboard_init(); | ||
| 23 | |||
| 11 | while(1) { | 24 | while(1) { |
| 12 | wait_ms(500); | 25 | keyboard_task(); |
| 13 | uint32_t delay = 0xf; | 26 | |
| 14 | while (delay--) { | 27 | bool matrix_on = false; |
| 15 | uint32_t delay2 = 0xffff; | 28 | matrix_scan(); |
| 16 | while (delay2--) ; | 29 | for (int i = 0; i < MATRIX_ROWS; i++) { |
| 30 | if (matrix_get_row(i)) { | ||
| 31 | matrix_on = true; | ||
| 32 | break; | ||
| 33 | } | ||
| 34 | } | ||
| 35 | if (matrix_on) | ||
| 36 | gpio_write(&led, 1); | ||
| 37 | else { | ||
| 38 | if (timer_elapsed(t) > 500) { | ||
| 39 | gpio_write(&led, !gpio_read(&led)); | ||
| 40 | t = timer_read(); | ||
| 41 | } | ||
| 17 | } | 42 | } |
| 18 | gpio_write(&led, !gpio_read(&led)); | ||
| 19 | } | 43 | } |
| 20 | } | 44 | } |
