quantum/debounce: rename debouncing algorithms (#9564)
* quantum/debounce: rename debouncing algorithms according to Issue 8763 This is the second attempt at implementation, with no ts_ and cy_ prefixes, since those will be implemented with macros. * Debouncing documentation: Refactor, add some generic info, and merge into a single document
This commit is contained in:
		
							parent
							
								
									8ac9940a76
								
							
						
					
					
						commit
						f7ccbfcea8
					
				
					 7 changed files with 139 additions and 48 deletions
				
			
		| 
						 | 
				
			
			@ -1,28 +0,0 @@
 | 
			
		|||
Debounce algorithms belong in this folder.
 | 
			
		||||
Here are a few ideas
 | 
			
		||||
 | 
			
		||||
1) Global vs Per-Key vs Per-Row
 | 
			
		||||
 * Global - one timer for all keys. Any key change state affects global timer
 | 
			
		||||
 * Per key - one timer per key
 | 
			
		||||
 * Per row - one timer per row
 | 
			
		||||
 | 
			
		||||
2) Eager vs symmetric vs asymmetric
 | 
			
		||||
 * Eager - any key change is reported immediately. All further inputs for DEBOUNCE ms are ignored.
 | 
			
		||||
 * Symmetric - wait for no changes for DEBOUNCE ms before reporting change
 | 
			
		||||
 * Asymmetric - wait for different times depending on key-down/key-up. E.g. Eager key-down, DEBOUNCE ms key up.
 | 
			
		||||
 | 
			
		||||
3) Timestamp vs cycles
 | 
			
		||||
 * old old old code waits n cycles, decreasing count by one each matrix_scan
 | 
			
		||||
 * newer code stores the millisecond the change occurred, and does subraction to figure out time elapsed.
 | 
			
		||||
 * Timestamps are superior, i don't think cycles will ever be used again once upgraded.
 | 
			
		||||
 | 
			
		||||
The default algorithm is symmetric and global.
 | 
			
		||||
Here are a few that could be implemented:
 | 
			
		||||
 | 
			
		||||
sym_g.c
 | 
			
		||||
sym_pk.c
 | 
			
		||||
sym_pr.c
 | 
			
		||||
sym_pr_cycles.c 
 | 
			
		||||
eager_g.c
 | 
			
		||||
eager_pk.c
 | 
			
		||||
eager_pr.c //could be used in ergo-dox!
 | 
			
		||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue