Add support for driving unselected row/col. (#16278)
This commit is contained in:
		
							parent
							
								
									e26778ceb5
								
							
						
					
					
						commit
						efdaa7f972
					
				
					 4 changed files with 19 additions and 139 deletions
				
			
		| 
						 | 
				
			
			@ -82,6 +82,13 @@ static inline void setPinOutput_writeLow(pin_t pin) {
 | 
			
		|||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static inline void setPinOutput_writeHigh(pin_t pin) {
 | 
			
		||||
    ATOMIC_BLOCK_FORCEON {
 | 
			
		||||
        setPinOutput(pin);
 | 
			
		||||
        writePinHigh(pin);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static inline void setPinInputHigh_atomic(pin_t pin) {
 | 
			
		||||
    ATOMIC_BLOCK_FORCEON { setPinInputHigh(pin); }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -141,7 +148,11 @@ static bool select_row(uint8_t row) {
 | 
			
		|||
static void unselect_row(uint8_t row) {
 | 
			
		||||
    pin_t pin = row_pins[row];
 | 
			
		||||
    if (pin != NO_PIN) {
 | 
			
		||||
#            ifdef MATRIX_UNSELECT_DRIVE_HIGH
 | 
			
		||||
        setPinOutput_writeHigh(pin);
 | 
			
		||||
#            else
 | 
			
		||||
        setPinInputHigh_atomic(pin);
 | 
			
		||||
#            endif
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -200,7 +211,11 @@ static bool select_col(uint8_t col) {
 | 
			
		|||
static void unselect_col(uint8_t col) {
 | 
			
		||||
    pin_t pin = col_pins[col];
 | 
			
		||||
    if (pin != NO_PIN) {
 | 
			
		||||
#            ifdef MATRIX_UNSELECT_DRIVE_HIGH
 | 
			
		||||
        setPinOutput_writeHigh(pin);
 | 
			
		||||
#            else
 | 
			
		||||
        setPinInputHigh_atomic(pin);
 | 
			
		||||
#            endif
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue