Arm ps2 mouse interrupt (#6490)
* ps2_mouse on ARM: an interrupt-version of the ps2-mouse code ported to ARM/chibios * ps2_mouse on ARM: link EXT callback-channel selection to the user defined PS2_LINE_CLOCK * ps2_mouse on ARM: replace DELAY_X defines with hardware-agnostic wait_X * ps2_mouse on ARM: replace chibios-specific defines for the pins/lines with defines from quantum/config_common.h and drop the '_LINE' component from teh define name * ps2_mouse on ARM: expose the software-intterupt port as a user editable define * Update docs/feature_ps2_mouse.md Co-Authored-By: Hugo van Kemenade <hugovk@users.noreply.github.com> * Update feature_ps2_mouse.md * use a define to deduce the PS_DATA_PORT instead * reduce all-zero extcfg to oneliner * ps2_mouse: use generic wait instead of avr-delay * Update docs/feature_ps2_mouse.md * ps2_mouse: changes for new chibios version (17.6.0 -> 19.1.0) replacing the legacy externa-interrupt driver with pal-callbacks * ps2_mouse: use PLATFORM_KEY Co-Authored-By: Joel Challis <git@zvecr.com> * ps2_mouse: clang-format corrections * ps2_mouse: add systemlocks using the chibios equivalent to AVRs cli: chSys[Unl|L]ock Co-authored-by: Johannes <you@example.com> Co-authored-by: Hugo van Kemenade <hugovk@users.noreply.github.com> Co-authored-by: Joel Challis <git@zvecr.com>
This commit is contained in:
		
							parent
							
								
									5bbc527460
								
							
						
					
					
						commit
						bcb6e23387
					
				
					 5 changed files with 172 additions and 20 deletions
				
			
		| 
						 | 
				
			
			@ -50,7 +50,7 @@ In your keyboard config.h:
 | 
			
		|||
#endif
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
## Interrupt Version :id=interrupt-version
 | 
			
		||||
### Interrupt Version (AVR/ATMega32u4) :id=interrupt-version-avr
 | 
			
		||||
 | 
			
		||||
The following example uses D2 for clock and D5 for data. You can use any INT or PCINT pin for clock, and any pin for data.
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -88,7 +88,31 @@ In your keyboard config.h:
 | 
			
		|||
#endif
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
## USART Version :id=usart-version
 | 
			
		||||
### Interrupt Version (ARM chibios) :id=interrupt-version-chibios
 | 
			
		||||
 | 
			
		||||
Pretty much any two pins can be used for the (software) interrupt variant on ARM cores. The example below uses A8 for clock, and A9 for data.
 | 
			
		||||
 | 
			
		||||
In rules.mk:
 | 
			
		||||
 | 
			
		||||
```
 | 
			
		||||
PS2_MOUSE_ENABLE = yes
 | 
			
		||||
PS2_USE_INT = yes
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
In your keyboard config.h:
 | 
			
		||||
 | 
			
		||||
```c
 | 
			
		||||
#define PS2_CLOCK A8
 | 
			
		||||
#define PS2_DATA  A9
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
And in the chibios specifig halconf.h:
 | 
			
		||||
```c
 | 
			
		||||
#define PAL_USE_CALLBACKS TRUE
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
### USART Version :id=usart-version
 | 
			
		||||
 | 
			
		||||
To use USART on the ATMega32u4, you have to use PD5 for clock and PD2 for data. If one of those are unavailable, you need to use interrupt version.
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue