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 }