Add support for 328P hardware backlight on B1/B2 (#6776)
This commit is contained in:
		@@ -32,16 +32,18 @@ This feature is distinct from both the [RGB underglow](feature_rgblight.md) and
 | 
			
		||||
 | 
			
		||||
Hardware PWM is supported according to the following table:
 | 
			
		||||
 | 
			
		||||
|Backlight Pin|AT90USB64/128|ATmega16/32U4|ATmega16/32U2|ATmega32A|
 | 
			
		||||
|-------------|-------------|-------------|-------------|---------|
 | 
			
		||||
|`B5`         |Timer 1      |Timer 1      |             |         |
 | 
			
		||||
|`B6`         |Timer 1      |Timer 1      |             |         |
 | 
			
		||||
|`B7`         |Timer 1      |Timer 1      |Timer 1      |         |
 | 
			
		||||
|`C4`         |Timer 3      |             |             |         |
 | 
			
		||||
|`C5`         |Timer 3      |             |Timer 1      |         |
 | 
			
		||||
|`C6`         |Timer 3      |Timer 3      |Timer 1      |         |
 | 
			
		||||
|`D4`         |             |             |             |Timer 1  |
 | 
			
		||||
|`D5`         |             |             |             |Timer 1  |
 | 
			
		||||
|Backlight Pin|AT90USB64/128|ATmega16/32U4|ATmega16/32U2|ATmega32A|ATmega328P|
 | 
			
		||||
|-------------|-------------|-------------|-------------|---------|----------|
 | 
			
		||||
|`B1`         |             |             |             |         |Timer 1   |
 | 
			
		||||
|`B2`         |             |             |             |         |Timer 1   |
 | 
			
		||||
|`B5`         |Timer 1      |Timer 1      |             |         |          |
 | 
			
		||||
|`B6`         |Timer 1      |Timer 1      |             |         |          |
 | 
			
		||||
|`B7`         |Timer 1      |Timer 1      |Timer 1      |         |          |
 | 
			
		||||
|`C4`         |Timer 3      |             |             |         |          |
 | 
			
		||||
|`C5`         |Timer 3      |             |Timer 1      |         |          |
 | 
			
		||||
|`C6`         |Timer 3      |Timer 3      |Timer 1      |         |          |
 | 
			
		||||
|`D4`         |             |             |             |Timer 1  |          |
 | 
			
		||||
|`D5`         |             |             |             |Timer 1  |          |
 | 
			
		||||
 | 
			
		||||
All other pins will use software PWM. If the [Audio](feature_audio.md) feature is disabled or only using one timer, the backlight PWM can be triggered by a hardware timer:
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1104,6 +1104,22 @@ void matrix_scan_quantum() {
 | 
			
		||||
#            define COMxx1 COM1A1
 | 
			
		||||
#            define OCRxx OCR1A
 | 
			
		||||
#        endif
 | 
			
		||||
#    elif defined(__AVR_ATmega328P__) && (BACKLIGHT_PIN == B1 || BACKLIGHT_PIN == B2)
 | 
			
		||||
#        define HARDWARE_PWM
 | 
			
		||||
#        define ICRx ICR1
 | 
			
		||||
#        define TCCRxA TCCR1A
 | 
			
		||||
#        define TCCRxB TCCR1B
 | 
			
		||||
#        define TIMERx_OVF_vect TIMER1_OVF_vect
 | 
			
		||||
#        define TIMSKx TIMSK1
 | 
			
		||||
#        define TOIEx TOIE1
 | 
			
		||||
 | 
			
		||||
#        if BACKLIGHT_PIN == B1
 | 
			
		||||
#            define COMxx1 COM1A1
 | 
			
		||||
#            define OCRxx OCR1A
 | 
			
		||||
#        elif BACKLIGHT_PIN == B2
 | 
			
		||||
#            define COMxx1 COM1B1
 | 
			
		||||
#            define OCRxx OCR1B
 | 
			
		||||
#        endif
 | 
			
		||||
#    else
 | 
			
		||||
#        if !defined(BACKLIGHT_CUSTOM_DRIVER)
 | 
			
		||||
#            if !defined(B5_AUDIO) && !defined(B6_AUDIO) && !defined(B7_AUDIO)
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user