Fix breathing always on for soft PWM (#5983)
* Fix breathing always on for soft PWM * Remove reference to hardware PWM pins in BACKLIGHT_BREATHING description Now, breathing will only be unsupported when Timers 1 and 3 are both used by Audio * Document BACKLIGHT_ON_STATE and its purpose
This commit is contained in:
		
							parent
							
								
									67e0c951af
								
							
						
					
					
						commit
						317b809564
					
				
					 3 changed files with 19 additions and 10 deletions
				
			
		| 
						 | 
				
			
			@ -80,7 +80,7 @@ This is a C header file that is one of the first things included, and will persi
 | 
			
		|||
* `#define BACKLIGHT_LEVELS 3`
 | 
			
		||||
  * number of levels your backlight will have (maximum 15 excluding off)
 | 
			
		||||
* `#define BACKLIGHT_BREATHING`
 | 
			
		||||
  * enables backlight breathing (only works with backlight pins B5, B6 and B7)
 | 
			
		||||
  * enables backlight breathing
 | 
			
		||||
* `#define BREATHING_PERIOD 6`
 | 
			
		||||
  * the length of one backlight "breath" in seconds
 | 
			
		||||
* `#define DEBOUNCE 5`
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -69,6 +69,12 @@ To change the behaviour of the backlighting, `#define` these in your `config.h`:
 | 
			
		|||
|`BACKLIGHT_CAPS_LOCK`|*Not defined*|Enable Caps Lock indicator using backlight (for keyboards without dedicated LED)                             |
 | 
			
		||||
|`BACKLIGHT_BREATHING`|*Not defined*|Enable backlight breathing, if supported                                                                     |
 | 
			
		||||
|`BREATHING_PERIOD`   |`6`          |The length of one backlight "breath" in seconds                                                              |
 | 
			
		||||
|`BACKLIGHT_ON_STATE` |`0`          |The state of the backlight pin when the backlight is "on" - `1` for high, `0` for low                        |
 | 
			
		||||
 | 
			
		||||
## Backlight On State
 | 
			
		||||
 | 
			
		||||
Most backlight circuits are driven by an N-channel MOSFET or NPN transistor. This means that to turn the transistor *on* and light the LEDs, you must drive the backlight pin, connected to the gate or base, *low*.
 | 
			
		||||
Sometimes, however, a P-channel MOSFET, or a PNP transistor is used. In this case you must `#define BACKLIGHT_ON_STATE 1`, so that when the transistor is on, the pin is driven *high* instead.
 | 
			
		||||
 | 
			
		||||
## Multiple backlight pins
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -707,8 +707,9 @@ bool process_record_quantum(keyrecord_t *record) {
 | 
			
		|||
 | 
			
		||||
#if defined(BACKLIGHT_ENABLE) && defined(BACKLIGHT_BREATHING)
 | 
			
		||||
    case BL_BRTG: {
 | 
			
		||||
      if (record->event.pressed)
 | 
			
		||||
      if (record->event.pressed) {
 | 
			
		||||
        breathing_toggle();
 | 
			
		||||
      }
 | 
			
		||||
      return false;
 | 
			
		||||
    }
 | 
			
		||||
#endif
 | 
			
		||||
| 
						 | 
				
			
			@ -1233,7 +1234,9 @@ ISR(TIMERx_COMPA_vect) {
 | 
			
		|||
// this one triggers at F_CPU/65536 =~ 244 Hz
 | 
			
		||||
ISR(TIMERx_OVF_vect) {
 | 
			
		||||
#ifdef BACKLIGHT_BREATHING
 | 
			
		||||
  if(is_breathing()) {
 | 
			
		||||
    breathing_task();
 | 
			
		||||
  }
 | 
			
		||||
#endif
 | 
			
		||||
  // for very small values of OCRxx (or backlight level)
 | 
			
		||||
  // we can't guarantee this whole code won't execute
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue