You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							99 lines
						
					
					
						
							1.7 KiB
						
					
					
				
			
		
		
	
	
							99 lines
						
					
					
						
							1.7 KiB
						
					
					
				#include "cluecard.h"
 | 
						|
#define BL_RED OCR1B
 | 
						|
#define BL_GREEN OCR1A
 | 
						|
#define BL_BLUE OCR1C
 | 
						|
 | 
						|
void matrix_init_kb(void) {
 | 
						|
	// put your keyboard start-up code here
 | 
						|
	// runs once when the firmware starts up
 | 
						|
 | 
						|
	matrix_init_user();
 | 
						|
}
 | 
						|
 | 
						|
void matrix_scan_kb(void) {
 | 
						|
	// put your looping keyboard code here
 | 
						|
	// runs every cycle (a lot)
 | 
						|
 | 
						|
	matrix_scan_user();
 | 
						|
}
 | 
						|
 | 
						|
bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
 | 
						|
	// put your per-action keyboard code here
 | 
						|
	// runs for every action, just before processing by the firmware
 | 
						|
 | 
						|
	return process_record_user(keycode, record);
 | 
						|
}
 | 
						|
 | 
						|
void led_set_kb(uint8_t usb_led) {
 | 
						|
	// put your keyboard LED indicator (ex: Caps Lock LED) toggling code here
 | 
						|
 | 
						|
	led_set_user(usb_led);
 | 
						|
}
 | 
						|
 | 
						|
void backlight_init_ports(void)
 | 
						|
{
 | 
						|
	// Set B5, B6, and B7 as output
 | 
						|
	DDRB |= (1<<7)|(1<<6)|(1<<5);
 | 
						|
 | 
						|
	// Setup PWM
 | 
						|
	ICR1 = 0xFFFF;
 | 
						|
	TCCR1A = 0b10101010;
 | 
						|
	TCCR1B = 0b00011001;
 | 
						|
 | 
						|
	BL_RED = 0xFFFF;
 | 
						|
	BL_GREEN = 0xFFFF;
 | 
						|
	BL_BLUE = 0xFFFF;
 | 
						|
}
 | 
						|
 | 
						|
void backlight_set(uint8_t level)
 | 
						|
{
 | 
						|
	// Set the RGB color
 | 
						|
	switch (level)
 | 
						|
	{
 | 
						|
	case 0:
 | 
						|
		// Off
 | 
						|
		BL_RED = 0xFFFF;
 | 
						|
		BL_GREEN = 0xFFFF;
 | 
						|
		BL_BLUE = 0xFFFF;
 | 
						|
		break;
 | 
						|
	case 1:
 | 
						|
		// Red
 | 
						|
		BL_RED = 0x0000;
 | 
						|
		BL_GREEN = 0xFFFF;
 | 
						|
		BL_BLUE = 0xFFFF;
 | 
						|
		break;
 | 
						|
	case 2:
 | 
						|
		// Green
 | 
						|
		BL_RED = 0xFFFF;
 | 
						|
		BL_GREEN = 0x0000;
 | 
						|
		BL_BLUE = 0xFFFF;
 | 
						|
		break;
 | 
						|
	case 3:
 | 
						|
		// Blue
 | 
						|
		BL_RED = 0xFFFF;
 | 
						|
		BL_GREEN = 0xFFFF;
 | 
						|
		BL_BLUE = 0x0000;
 | 
						|
		break;
 | 
						|
	case 4:
 | 
						|
		// Magenta
 | 
						|
		BL_RED = 0x4000;
 | 
						|
		BL_GREEN = 0x4000;
 | 
						|
		BL_BLUE = 0x4000;
 | 
						|
		break;
 | 
						|
	case 5:
 | 
						|
		// Purple
 | 
						|
		BL_RED = 0x0000;
 | 
						|
		BL_GREEN = 0xFFFF;
 | 
						|
		BL_BLUE = 0x0000;
 | 
						|
		break;
 | 
						|
	case 6:
 | 
						|
		// Yellow
 | 
						|
		BL_RED = 0x0000;
 | 
						|
		BL_GREEN = 0x0000;
 | 
						|
		BL_BLUE = 0xFFFF;
 | 
						|
		break;
 | 
						|
	default:
 | 
						|
		xprintf("Unknown level: %d\n", level);
 | 
						|
	}
 | 
						|
}
 |