qmk_firmware

QMK firmware for my keyboards (Corne, Sweep Ferris) and trackball (Ploopy Adept)
Log | Files | Refs | Submodules | LICENSE

card.c (1078B)


      1 #include "quantum.h"
      2 
      3 #define BL_RED OCR1B
      4 #define BL_GREEN OCR1A
      5 #define BL_BLUE OCR1C
      6 
      7 void backlight_init_ports(void)
      8 {
      9 	// Set B5, B6, and B7 as output
     10 	DDRB |= (1<<7)|(1<<6)|(1<<5);
     11 
     12 	// Setup PWM
     13 	ICR1 = 0xFFFF;
     14 	TCCR1A = 0b10101010;
     15 	TCCR1B = 0b00011001;
     16 
     17 	BL_RED = 0xFFFF;
     18 	BL_GREEN = 0xFFFF;
     19 	BL_BLUE = 0xFFFF;
     20 }
     21 
     22 void backlight_set(uint8_t level)
     23 {
     24 	// Set the RGB color
     25 	switch (level)
     26 	{
     27 	case 0:
     28 		// Off
     29 		BL_RED = 0xFFFF;
     30 		BL_GREEN = 0xFFFF;
     31 		BL_BLUE = 0xFFFF;
     32 		break;
     33 	case 1:
     34 		// Red
     35 		BL_RED = 0x0000;
     36 		BL_GREEN = 0xFFFF;
     37 		BL_BLUE = 0xFFFF;
     38 		break;
     39 	case 2:
     40 		// Green
     41 		BL_RED = 0xFFFF;
     42 		BL_GREEN = 0x0000;
     43 		BL_BLUE = 0xFFFF;
     44 		break;
     45 	case 3:
     46 		// Blue
     47 		BL_RED = 0xFFFF;
     48 		BL_GREEN = 0xFFFF;
     49 		BL_BLUE = 0x0000;
     50 		break;
     51 	case 4:
     52 		// Magenta
     53 		BL_RED = 0x4000;
     54 		BL_GREEN = 0x4000;
     55 		BL_BLUE = 0x4000;
     56 		break;
     57 	case 5:
     58 		// Purple
     59 		BL_RED = 0x0000;
     60 		BL_GREEN = 0xFFFF;
     61 		BL_BLUE = 0x0000;
     62 		break;
     63 	case 6:
     64 		// Yellow
     65 		BL_RED = 0x0000;
     66 		BL_GREEN = 0x0000;
     67 		BL_BLUE = 0xFFFF;
     68 		break;
     69 	default:
     70 		xprintf("Unknown level: %d\n", level);
     71 	}
     72 }