diff options
author | Alex Ong <[email protected]> | 2018-08-29 10:08:07 +1000 |
---|---|---|
committer | Drashna Jaelre <[email protected]> | 2018-08-28 17:08:07 -0700 |
commit | 9bd6d6112d698ea5823b268983809fe3b8d98b26 (patch) | |
tree | a47b90c36bc7c976bd57b5d69bdba0e905bcfd66 /keyboards/handwired/xealous/matrix_scanrate.c | |
parent | af5f59636eea83f66db6510f61510d31ee9dade4 (diff) | |
download | qmk_firmware-9bd6d6112d698ea5823b268983809fe3b8d98b26.tar.gz qmk_firmware-9bd6d6112d698ea5823b268983809fe3b8d98b26.zip |
Keyboard: xealous (#3731)
* Keyboard: HandWired/XeaL60
* Updated rules.mk
* Mapping for layout was flipped
* Figured out how to re-map bad pins.
* Updated Keymap
* Enabled audio, Forced NKRO
* Added QMK_KEYS_PER_SCAN
* Removed more unnecessary files, since split_keyboards are in main QMK branch already.
* Simplified rules.mk in rev1
* Removed i2c from matrix.c
* Re-formatted to 4 spaces per tab,
* Changed note for NUMPAD
* Added I2C support back!
* Fixed keyboard mappings. Both sides work
* Moved i2c configuration from keymaps/default/config.h to config.h
* Changed SCL_CLOCK to 400000L
* Added DEBUG_MATRIX_SCAN_RATE for future optimization efforts
* Removed row2col code to clean up matrix.c
* Scan rate from 2100 -> 4200 by using Nop instead of waiting 30us between columns.
* Further optimized column reading via optimized_col_reader.
* Immediate key-recognition
* Switched back to own implementation of SPLIT_KEYBOARD. Will optimize so that slave interrupts master.
* Moved scanrate debug messages to another file.
* Made matrix_scanrate.c compile if CONSOLE_ENABLE is off. Updated to latest i2c.c
* Latest i2c uses a few bytes for lighting information
* Optimizations in i2c.h to determine buffer size.
* Disabled a whole bunch of features. TODO: Test that keyboard still works fine.
* Minimum #define NO_ACTION's with still working keyboard
* Fixed matrix not working due to offsets not being respected
* Added numlock button for keymap.
* Use I2C_KEYMAP_START offset
* Removed serial, Backlight and RGB support
* Removed need for split_flags.
* Added audio on and off for numlock.
* Renamed from xeal60 to xealous, simplified build system.
* Used more shared split_common code.
* Updated audio code.
* moved tone_qwerty and tone_numpad to config.h. Removed keymaps/default/config.h
* Added more shortcut keys in _FN layer. Increased debounce to 6ms due to fencepost error.
* DF used with incorrect argument. Custom_keycodes no longer required.
* Fixed bug in update_debounce_counters which was resulting in no debouncing!
* Removed unnecessary #include
Diffstat (limited to 'keyboards/handwired/xealous/matrix_scanrate.c')
-rw-r--r-- | keyboards/handwired/xealous/matrix_scanrate.c | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/keyboards/handwired/xealous/matrix_scanrate.c b/keyboards/handwired/xealous/matrix_scanrate.c new file mode 100644 index 0000000000..f2c7cbe6e3 --- /dev/null +++ b/keyboards/handwired/xealous/matrix_scanrate.c @@ -0,0 +1,39 @@ +#include <stdint.h> +#include <stdbool.h> +#include <avr/io.h> +#include "wait.h" +#include "print.h" +#include "debug.h" +#include "util.h" +#include "matrix.h" +#include "timer.h" + +#ifdef CONSOLE_ENABLE +static uint16_t matrix_scan_count = 0; +static uint32_t matrix_timer = 0; +void matrix_check_scan_rate(void) { + matrix_scan_count++; + if (matrix_scan_count > 1000) { + uint32_t timer_now = timer_read32(); + uint16_t ms_per_thousand = TIMER_DIFF_32(timer_now, matrix_timer); + uint16_t rate_per_second = 1000000UL / ms_per_thousand; + print("scan_rate: "); + pdec(rate_per_second); + print("\n"); + matrix_timer = timer_now; + matrix_scan_count = 0; + } +} + +static uint32_t last_scan_time = 0; +void matrix_time_between_scans(void) { + if (timer_elapsed(last_scan_time) > 1) + { + print(">1ms elapsed since last scan: "); + pdec(timer_elapsed(last_scan_time)); + print("\n"); + } + last_scan_time = timer_read(); + +} +#endif |