Mercurial > louis > kiibohd-controller
view Scan/MatrixARM/capabilities.kll @ 299:c856f826bd49
Adding DebounceThrottleDiv define to slow down the debounce rate.
By default:
DebounceThrottleDiv = 0;
This is the default infinity behaviour right now (may be changed in the future).
Increasing DebounceThrottleDiv will increase the scan rate divider.
DebounceThrottleDiv = 1; # Scans half as much
DebounceThrottleDiv = 2; # Scans a quarter as much
DebounceThrottleDiv = 3; # Scans an eigth as much
etc.
For ARM based uCs (like the Infinity) the maximum divider is 32.
author | Jacob Alexander <haata@kiibohd.com> |
---|---|
date | Fri, 06 Mar 2015 22:18:15 -0800 |
parents | 57f40871c726 |
children | e464aaa4730f |
line wrap: on
line source
Name = MatrixArmCapabilities; Version = 0.1; Author = "HaaTa (Jacob Alexander) 2015"; KLL = 0.3a; # Modified Date Date = 2015-02-28; # Defines available to the MatrixArm sub-module # This debounce scheme uses a rolling counter for press/unpress on each key # Each counter is incremented if pressed/unpressed and the opposite counter is divided by 2 # Using the default division threshold (0xFFFF), there are approximately 13 cycles in a perfect cycle # If debounce is actually necessary, this will increase (better switches will debounce faster) # # The maximum threshold is 0xFFFFFFFF, which will give around ~32 -> 36 cycles per perfect cycle # Using a threshold higher than 0xFFFF will require 32 bit variables, and double the ram usage. DebounceDivThreshold => DebounceDivThreshold_define; DebounceDivThreshold = 0xFFFF; # Default debounce #DebounceDivThreshold = 0xFFFFFFFF; # Max debounce # This defines how often the matrix is scanned # By, default the key matrix is scanned once per macro processing loop # For fast uCs and bouncy switches, this can be non-ideal # 0 - Bit-shift of 0 # 1 - Bit-shift of 1 (i.e. divide by 2) # 2 - Bit-shift of 2 (i.e. divide by 4) # 3 - Bit-shift of 3 (i.e. divide by 8) # etc. # Depending on the architecture, this is either a maximum of 16 or 32 # Increasing this value will increase switch latency DebounceThrottleDiv => DebounceThrottleDiv_define; DebounceThrottleDiv = 0; # Default #DebounceThrottleDiv = 2; # /4 divider