Add missing mcuconf.h and halconf.h to onekey:joystick keymap.
Add suggested fixes from PR.
This commit is contained in:
		
							parent
							
								
									0ce015d0c9
								
							
						
					
					
						commit
						476fce8a32
					
				
					 6 changed files with 813 additions and 15 deletions
				
			
		| 
						 | 
				
			
			@ -25,9 +25,9 @@
 | 
			
		|||
    { OUTPUT_PIN, INPUT_PIN, GROUND_PIN, LOW, REST, HIGH }
 | 
			
		||||
 | 
			
		||||
typedef struct {
 | 
			
		||||
    uint32_t output_pin;
 | 
			
		||||
    uint32_t input_pin;
 | 
			
		||||
    uint32_t ground_pin;
 | 
			
		||||
    pin_t output_pin;
 | 
			
		||||
    pin_t input_pin;
 | 
			
		||||
    pin_t ground_pin;
 | 
			
		||||
 | 
			
		||||
    // the AVR ADC offers 10 bit precision, with significant bits on the higher part
 | 
			
		||||
    uint16_t min_digit;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -41,7 +41,7 @@ bool process_joystick_buttons(uint16_t keycode, keyrecord_t *record) {
 | 
			
		|||
    return true;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
uint16_t savePinState(uint32_t pin) {
 | 
			
		||||
uint16_t savePinState(pin_t pin) {
 | 
			
		||||
#ifdef __AVR__
 | 
			
		||||
    uint8_t pinNumber = pin & 0xF;
 | 
			
		||||
    return ((PORTx_ADDRESS(pin) >> pinNumber) & 0x1) << 1 | ((DDRx_ADDRESS(pin) >> pinNumber) & 0x1);
 | 
			
		||||
| 
						 | 
				
			
			@ -62,8 +62,8 @@ uint16_t savePinState(uint32_t pin) {
 | 
			
		|||
#endif
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void restorePinState(uint32_t pin, uint16_t restoreState) {
 | 
			
		||||
#ifdef __AVR__
 | 
			
		||||
void restorePinState(pin_t pin, uint16_t restoreState) {
 | 
			
		||||
#if defined(PROTOCOL_LUFA)
 | 
			
		||||
    uint8_t pinNumber  = pin & 0xF;
 | 
			
		||||
    PORTx_ADDRESS(pin) = (PORTx_ADDRESS(pin) & ~_BV(pinNumber)) | (((restoreState >> 1) & 0x1) << pinNumber);
 | 
			
		||||
    DDRx_ADDRESS(pin)  = (DDRx_ADDRESS(pin) & ~_BV(pinNumber)) | ((restoreState & 0x1) << pinNumber);
 | 
			
		||||
| 
						 | 
				
			
			@ -135,17 +135,17 @@ bool process_joystick_analogread_quantum() {
 | 
			
		|||
        //test the converted value against the lower range
 | 
			
		||||
        int32_t ref = joystick_axes[axis_index].mid_digit;
 | 
			
		||||
        int32_t range = joystick_axes[axis_index].min_digit;
 | 
			
		||||
        int32_t ranged_val = ((axis_val - ref)* -127)/(range - ref) ;
 | 
			
		||||
        int32_t ranged_val = ((axis_val - ref) * -127) / (range - ref) ;
 | 
			
		||||
 | 
			
		||||
        if (ranged_val > 0){
 | 
			
		||||
        if (ranged_val > 0) {
 | 
			
		||||
            //the value is in the higher range
 | 
			
		||||
            range = joystick_axes[axis_index].max_digit;
 | 
			
		||||
            ranged_val = ((axis_val - ref)* 127)/(range - ref);
 | 
			
		||||
            ranged_val = ((axis_val - ref) * 127) / (range - ref);
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
        //clamp the result in the valid range
 | 
			
		||||
        ranged_val = ranged_val<-127 ? -127 : ranged_val;
 | 
			
		||||
        ranged_val = ranged_val>127 ? 127 : ranged_val;
 | 
			
		||||
        ranged_val = ranged_val < -127 ? -127 : ranged_val;
 | 
			
		||||
        ranged_val = ranged_val > 127 ? 127 : ranged_val;
 | 
			
		||||
        
 | 
			
		||||
        if (ranged_val != joystick_status.axes[axis_index]) {
 | 
			
		||||
            joystick_status.axes[axis_index] = ranged_val;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue