Move gamma correction from software to LUT
This commit is contained in:
		
							parent
							
								
									e13d522f4e
								
							
						
					
					
						commit
						ad433e2452
					
				
					 5 changed files with 266 additions and 267 deletions
				
			
		|  | @ -1 +1 @@ | |||
| 482 | ||||
| 507 | ||||
|  |  | |||
|  | @ -2,259 +2,260 @@ | |||
| 
 | ||||
| const LED_Colour_t Animation_ColourLUT[] = | ||||
| { | ||||
|     { .r = 255, .g = 51, .b = 51 }, | ||||
|     { .r = 255, .g = 51, .b = 56 }, | ||||
|     { .r = 255, .g = 51, .b = 61 }, | ||||
|     { .r = 255, .g = 51, .b = 65 }, | ||||
|     { .r = 255, .g = 51, .b = 70 }, | ||||
|     { .r = 255, .g = 51, .b = 75 }, | ||||
|     { .r = 255, .g = 51, .b = 80 }, | ||||
|     { .r = 255, .g = 51, .b = 85 }, | ||||
|     { .r = 255, .g = 51, .b = 89 }, | ||||
|     { .r = 255, .g = 51, .b = 94 }, | ||||
|     { .r = 255, .g = 51, .b = 99 }, | ||||
|     { .r = 255, .g = 51, .b = 104 }, | ||||
|     { .r = 255, .g = 51, .b = 109 }, | ||||
|     { .r = 255, .g = 51, .b = 113 }, | ||||
|     { .r = 255, .g = 51, .b = 118 }, | ||||
|     { .r = 255, .g = 51, .b = 123 }, | ||||
|     { .r = 255, .g = 51, .b = 128 }, | ||||
|     { .r = 255, .g = 51, .b = 133 }, | ||||
|     { .r = 255, .g = 51, .b = 137 }, | ||||
|     { .r = 255, .g = 51, .b = 142 }, | ||||
|     { .r = 255, .g = 51, .b = 147 }, | ||||
|     { .r = 255, .g = 51, .b = 152 }, | ||||
|     { .r = 255, .g = 51, .b = 157 }, | ||||
|     { .r = 255, .g = 51, .b = 161 }, | ||||
|     { .r = 255, .g = 51, .b = 166 }, | ||||
|     { .r = 255, .g = 51, .b = 171 }, | ||||
|     { .r = 255, .g = 51, .b = 176 }, | ||||
|     { .r = 255, .g = 51, .b = 181 }, | ||||
|     { .r = 255, .g = 51, .b = 185 }, | ||||
|     { .r = 255, .g = 51, .b = 190 }, | ||||
|     { .r = 255, .g = 51, .b = 195 }, | ||||
|     { .r = 255, .g = 51, .b = 200 }, | ||||
|     { .r = 255, .g = 51, .b = 205 }, | ||||
|     { .r = 255, .g = 51, .b = 209 }, | ||||
|     { .r = 255, .g = 51, .b = 214 }, | ||||
|     { .r = 255, .g = 51, .b = 219 }, | ||||
|     { .r = 255, .g = 51, .b = 224 }, | ||||
|     { .r = 255, .g = 51, .b = 229 }, | ||||
|     { .r = 255, .g = 51, .b = 233 }, | ||||
|     { .r = 255, .g = 51, .b = 238 }, | ||||
|     { .r = 255, .g = 51, .b = 243 }, | ||||
|     { .r = 255, .g = 51, .b = 248 }, | ||||
|     { .r = 255, .g = 51, .b = 253 }, | ||||
|     { .r = 253, .g = 51, .b = 255 }, | ||||
|     { .r = 248, .g = 51, .b = 255 }, | ||||
|     { .r = 243, .g = 51, .b = 255 }, | ||||
|     { .r = 238, .g = 51, .b = 255 }, | ||||
|     { .r = 233, .g = 51, .b = 255 }, | ||||
|     { .r = 229, .g = 51, .b = 255 }, | ||||
|     { .r = 224, .g = 51, .b = 255 }, | ||||
|     { .r = 219, .g = 51, .b = 255 }, | ||||
|     { .r = 214, .g = 51, .b = 255 }, | ||||
|     { .r = 209, .g = 51, .b = 255 }, | ||||
|     { .r = 205, .g = 51, .b = 255 }, | ||||
|     { .r = 200, .g = 51, .b = 255 }, | ||||
|     { .r = 195, .g = 51, .b = 255 }, | ||||
|     { .r = 190, .g = 51, .b = 255 }, | ||||
|     { .r = 185, .g = 51, .b = 255 }, | ||||
|     { .r = 181, .g = 51, .b = 255 }, | ||||
|     { .r = 176, .g = 51, .b = 255 }, | ||||
|     { .r = 171, .g = 51, .b = 255 }, | ||||
|     { .r = 166, .g = 51, .b = 255 }, | ||||
|     { .r = 161, .g = 51, .b = 255 }, | ||||
|     { .r = 157, .g = 51, .b = 255 }, | ||||
|     { .r = 152, .g = 51, .b = 255 }, | ||||
|     { .r = 147, .g = 51, .b = 255 }, | ||||
|     { .r = 142, .g = 51, .b = 255 }, | ||||
|     { .r = 137, .g = 51, .b = 255 }, | ||||
|     { .r = 133, .g = 51, .b = 255 }, | ||||
|     { .r = 128, .g = 51, .b = 255 }, | ||||
|     { .r = 123, .g = 51, .b = 255 }, | ||||
|     { .r = 118, .g = 51, .b = 255 }, | ||||
|     { .r = 113, .g = 51, .b = 255 }, | ||||
|     { .r = 109, .g = 51, .b = 255 }, | ||||
|     { .r = 104, .g = 51, .b = 255 }, | ||||
|     { .r = 99, .g = 51, .b = 255 }, | ||||
|     { .r = 94, .g = 51, .b = 255 }, | ||||
|     { .r = 89, .g = 51, .b = 255 }, | ||||
|     { .r = 85, .g = 51, .b = 255 }, | ||||
|     { .r = 80, .g = 51, .b = 255 }, | ||||
|     { .r = 75, .g = 51, .b = 255 }, | ||||
|     { .r = 70, .g = 51, .b = 255 }, | ||||
|     { .r = 65, .g = 51, .b = 255 }, | ||||
|     { .r = 61, .g = 51, .b = 255 }, | ||||
|     { .r = 56, .g = 51, .b = 255 }, | ||||
|     { .r = 51, .g = 51, .b = 255 }, | ||||
|     { .r = 51, .g = 56, .b = 255 }, | ||||
|     { .r = 51, .g = 61, .b = 255 }, | ||||
|     { .r = 51, .g = 65, .b = 255 }, | ||||
|     { .r = 51, .g = 70, .b = 255 }, | ||||
|     { .r = 51, .g = 75, .b = 255 }, | ||||
|     { .r = 51, .g = 80, .b = 255 }, | ||||
|     { .r = 51, .g = 85, .b = 255 }, | ||||
|     { .r = 51, .g = 89, .b = 255 }, | ||||
|     { .r = 51, .g = 94, .b = 255 }, | ||||
|     { .r = 51, .g = 99, .b = 255 }, | ||||
|     { .r = 51, .g = 104, .b = 255 }, | ||||
|     { .r = 51, .g = 109, .b = 255 }, | ||||
|     { .r = 51, .g = 113, .b = 255 }, | ||||
|     { .r = 51, .g = 118, .b = 255 }, | ||||
|     { .r = 51, .g = 123, .b = 255 }, | ||||
|     { .r = 51, .g = 128, .b = 255 }, | ||||
|     { .r = 51, .g = 133, .b = 255 }, | ||||
|     { .r = 51, .g = 137, .b = 255 }, | ||||
|     { .r = 51, .g = 142, .b = 255 }, | ||||
|     { .r = 51, .g = 147, .b = 255 }, | ||||
|     { .r = 51, .g = 152, .b = 255 }, | ||||
|     { .r = 51, .g = 157, .b = 255 }, | ||||
|     { .r = 51, .g = 161, .b = 255 }, | ||||
|     { .r = 51, .g = 166, .b = 255 }, | ||||
|     { .r = 51, .g = 171, .b = 255 }, | ||||
|     { .r = 51, .g = 176, .b = 255 }, | ||||
|     { .r = 51, .g = 181, .b = 255 }, | ||||
|     { .r = 51, .g = 185, .b = 255 }, | ||||
|     { .r = 51, .g = 190, .b = 255 }, | ||||
|     { .r = 51, .g = 195, .b = 255 }, | ||||
|     { .r = 51, .g = 200, .b = 255 }, | ||||
|     { .r = 51, .g = 205, .b = 255 }, | ||||
|     { .r = 51, .g = 209, .b = 255 }, | ||||
|     { .r = 51, .g = 214, .b = 255 }, | ||||
|     { .r = 51, .g = 219, .b = 255 }, | ||||
|     { .r = 51, .g = 224, .b = 255 }, | ||||
|     { .r = 51, .g = 229, .b = 255 }, | ||||
|     { .r = 51, .g = 233, .b = 255 }, | ||||
|     { .r = 51, .g = 238, .b = 255 }, | ||||
|     { .r = 51, .g = 243, .b = 255 }, | ||||
|     { .r = 51, .g = 248, .b = 255 }, | ||||
|     { .r = 51, .g = 253, .b = 255 }, | ||||
|     { .r = 51, .g = 255, .b = 253 }, | ||||
|     { .r = 51, .g = 255, .b = 248 }, | ||||
|     { .r = 51, .g = 255, .b = 243 }, | ||||
|     { .r = 51, .g = 255, .b = 238 }, | ||||
|     { .r = 51, .g = 255, .b = 233 }, | ||||
|     { .r = 51, .g = 255, .b = 229 }, | ||||
|     { .r = 51, .g = 255, .b = 224 }, | ||||
|     { .r = 51, .g = 255, .b = 219 }, | ||||
|     { .r = 51, .g = 255, .b = 214 }, | ||||
|     { .r = 51, .g = 255, .b = 209 }, | ||||
|     { .r = 51, .g = 255, .b = 205 }, | ||||
|     { .r = 51, .g = 255, .b = 200 }, | ||||
|     { .r = 51, .g = 255, .b = 195 }, | ||||
|     { .r = 51, .g = 255, .b = 190 }, | ||||
|     { .r = 51, .g = 255, .b = 185 }, | ||||
|     { .r = 51, .g = 255, .b = 181 }, | ||||
|     { .r = 51, .g = 255, .b = 176 }, | ||||
|     { .r = 51, .g = 255, .b = 171 }, | ||||
|     { .r = 51, .g = 255, .b = 166 }, | ||||
|     { .r = 51, .g = 255, .b = 161 }, | ||||
|     { .r = 51, .g = 255, .b = 157 }, | ||||
|     { .r = 51, .g = 255, .b = 152 }, | ||||
|     { .r = 51, .g = 255, .b = 147 }, | ||||
|     { .r = 51, .g = 255, .b = 142 }, | ||||
|     { .r = 51, .g = 255, .b = 137 }, | ||||
|     { .r = 51, .g = 255, .b = 133 }, | ||||
|     { .r = 51, .g = 255, .b = 128 }, | ||||
|     { .r = 51, .g = 255, .b = 123 }, | ||||
|     { .r = 51, .g = 255, .b = 118 }, | ||||
|     { .r = 51, .g = 255, .b = 113 }, | ||||
|     { .r = 51, .g = 255, .b = 109 }, | ||||
|     { .r = 51, .g = 255, .b = 104 }, | ||||
|     { .r = 51, .g = 255, .b = 99 }, | ||||
|     { .r = 51, .g = 255, .b = 94 }, | ||||
|     { .r = 51, .g = 255, .b = 89 }, | ||||
|     { .r = 51, .g = 255, .b = 85 }, | ||||
|     { .r = 51, .g = 255, .b = 80 }, | ||||
|     { .r = 51, .g = 255, .b = 75 }, | ||||
|     { .r = 51, .g = 255, .b = 70 }, | ||||
|     { .r = 51, .g = 255, .b = 65 }, | ||||
|     { .r = 51, .g = 255, .b = 61 }, | ||||
|     { .r = 51, .g = 255, .b = 56 }, | ||||
|     { .r = 51, .g = 255, .b = 51 }, | ||||
|     { .r = 56, .g = 255, .b = 51 }, | ||||
|     { .r = 61, .g = 255, .b = 51 }, | ||||
|     { .r = 65, .g = 255, .b = 51 }, | ||||
|     { .r = 70, .g = 255, .b = 51 }, | ||||
|     { .r = 75, .g = 255, .b = 51 }, | ||||
|     { .r = 80, .g = 255, .b = 51 }, | ||||
|     { .r = 85, .g = 255, .b = 51 }, | ||||
|     { .r = 89, .g = 255, .b = 51 }, | ||||
|     { .r = 94, .g = 255, .b = 51 }, | ||||
|     { .r = 99, .g = 255, .b = 51 }, | ||||
|     { .r = 104, .g = 255, .b = 51 }, | ||||
|     { .r = 109, .g = 255, .b = 51 }, | ||||
|     { .r = 113, .g = 255, .b = 51 }, | ||||
|     { .r = 118, .g = 255, .b = 51 }, | ||||
|     { .r = 123, .g = 255, .b = 51 }, | ||||
|     { .r = 128, .g = 255, .b = 51 }, | ||||
|     { .r = 133, .g = 255, .b = 51 }, | ||||
|     { .r = 137, .g = 255, .b = 51 }, | ||||
|     { .r = 142, .g = 255, .b = 51 }, | ||||
|     { .r = 147, .g = 255, .b = 51 }, | ||||
|     { .r = 152, .g = 255, .b = 51 }, | ||||
|     { .r = 157, .g = 255, .b = 51 }, | ||||
|     { .r = 161, .g = 255, .b = 51 }, | ||||
|     { .r = 166, .g = 255, .b = 51 }, | ||||
|     { .r = 171, .g = 255, .b = 51 }, | ||||
|     { .r = 176, .g = 255, .b = 51 }, | ||||
|     { .r = 181, .g = 255, .b = 51 }, | ||||
|     { .r = 185, .g = 255, .b = 51 }, | ||||
|     { .r = 190, .g = 255, .b = 51 }, | ||||
|     { .r = 195, .g = 255, .b = 51 }, | ||||
|     { .r = 200, .g = 255, .b = 51 }, | ||||
|     { .r = 205, .g = 255, .b = 51 }, | ||||
|     { .r = 209, .g = 255, .b = 51 }, | ||||
|     { .r = 214, .g = 255, .b = 51 }, | ||||
|     { .r = 219, .g = 255, .b = 51 }, | ||||
|     { .r = 224, .g = 255, .b = 51 }, | ||||
|     { .r = 229, .g = 255, .b = 51 }, | ||||
|     { .r = 233, .g = 255, .b = 51 }, | ||||
|     { .r = 238, .g = 255, .b = 51 }, | ||||
|     { .r = 243, .g = 255, .b = 51 }, | ||||
|     { .r = 248, .g = 255, .b = 51 }, | ||||
|     { .r = 253, .g = 255, .b = 51 }, | ||||
|     { .r = 255, .g = 253, .b = 51 }, | ||||
|     { .r = 255, .g = 248, .b = 51 }, | ||||
|     { .r = 255, .g = 243, .b = 51 }, | ||||
|     { .r = 255, .g = 238, .b = 51 }, | ||||
|     { .r = 255, .g = 233, .b = 51 }, | ||||
|     { .r = 255, .g = 229, .b = 51 }, | ||||
|     { .r = 255, .g = 224, .b = 51 }, | ||||
|     { .r = 255, .g = 219, .b = 51 }, | ||||
|     { .r = 255, .g = 214, .b = 51 }, | ||||
|     { .r = 255, .g = 209, .b = 51 }, | ||||
|     { .r = 255, .g = 205, .b = 51 }, | ||||
|     { .r = 255, .g = 200, .b = 51 }, | ||||
|     { .r = 255, .g = 195, .b = 51 }, | ||||
|     { .r = 255, .g = 190, .b = 51 }, | ||||
|     { .r = 255, .g = 185, .b = 51 }, | ||||
|     { .r = 255, .g = 181, .b = 51 }, | ||||
|     { .r = 255, .g = 176, .b = 51 }, | ||||
|     { .r = 255, .g = 171, .b = 51 }, | ||||
|     { .r = 255, .g = 166, .b = 51 }, | ||||
|     { .r = 255, .g = 161, .b = 51 }, | ||||
|     { .r = 255, .g = 157, .b = 51 }, | ||||
|     { .r = 255, .g = 152, .b = 51 }, | ||||
|     { .r = 255, .g = 147, .b = 51 }, | ||||
|     { .r = 255, .g = 142, .b = 51 }, | ||||
|     { .r = 255, .g = 137, .b = 51 }, | ||||
|     { .r = 255, .g = 133, .b = 51 }, | ||||
|     { .r = 255, .g = 128, .b = 51 }, | ||||
|     { .r = 255, .g = 123, .b = 51 }, | ||||
|     { .r = 255, .g = 118, .b = 51 }, | ||||
|     { .r = 255, .g = 113, .b = 51 }, | ||||
|     { .r = 255, .g = 109, .b = 51 }, | ||||
|     { .r = 255, .g = 104, .b = 51 }, | ||||
|     { .r = 255, .g = 99, .b = 51 }, | ||||
|     { .r = 255, .g = 94, .b = 51 }, | ||||
|     { .r = 255, .g = 89, .b = 51 }, | ||||
|     { .r = 255, .g = 85, .b = 51 }, | ||||
|     { .r = 255, .g = 80, .b = 51 }, | ||||
|     { .r = 255, .g = 75, .b = 51 }, | ||||
|     { .r = 255, .g = 70, .b = 51 }, | ||||
|     { .r = 255, .g = 65, .b = 51 }, | ||||
|     { .r = 255, .g = 61, .b = 51 }, | ||||
|     { .r = 255, .g = 56, .b = 51 }, | ||||
|     { .r = 4096, .g = 119, .b = 119 }, | ||||
|     { .r = 4096, .g = 145, .b = 119 }, | ||||
|     { .r = 4096, .g = 173, .b = 119 }, | ||||
|     { .r = 4096, .g = 205, .b = 119 }, | ||||
|     { .r = 4096, .g = 239, .b = 119 }, | ||||
|     { .r = 4096, .g = 277, .b = 119 }, | ||||
|     { .r = 4096, .g = 317, .b = 119 }, | ||||
|     { .r = 4096, .g = 360, .b = 119 }, | ||||
|     { .r = 4096, .g = 407, .b = 119 }, | ||||
|     { .r = 4096, .g = 456, .b = 119 }, | ||||
|     { .r = 4096, .g = 509, .b = 119 }, | ||||
|     { .r = 4096, .g = 565, .b = 119 }, | ||||
|     { .r = 4096, .g = 623, .b = 119 }, | ||||
|     { .r = 4096, .g = 686, .b = 119 }, | ||||
|     { .r = 4096, .g = 751, .b = 119 }, | ||||
|     { .r = 4096, .g = 820, .b = 119 }, | ||||
|     { .r = 4096, .g = 891, .b = 119 }, | ||||
|     { .r = 4096, .g = 967, .b = 119 }, | ||||
|     { .r = 4096, .g = 1045, .b = 119 }, | ||||
|     { .r = 4096, .g = 1127, .b = 119 }, | ||||
|     { .r = 4096, .g = 1212, .b = 119 }, | ||||
|     { .r = 4096, .g = 1301, .b = 119 }, | ||||
|     { .r = 4096, .g = 1393, .b = 119 }, | ||||
|     { .r = 4096, .g = 1489, .b = 119 }, | ||||
|     { .r = 4096, .g = 1588, .b = 119 }, | ||||
|     { .r = 4096, .g = 1690, .b = 119 }, | ||||
|     { .r = 4096, .g = 1796, .b = 119 }, | ||||
|     { .r = 4096, .g = 1906, .b = 119 }, | ||||
|     { .r = 4096, .g = 2019, .b = 119 }, | ||||
|     { .r = 4096, .g = 2135, .b = 119 }, | ||||
|     { .r = 4096, .g = 2256, .b = 119 }, | ||||
|     { .r = 4096, .g = 2380, .b = 119 }, | ||||
|     { .r = 4096, .g = 2507, .b = 119 }, | ||||
|     { .r = 4096, .g = 2638, .b = 119 }, | ||||
|     { .r = 4096, .g = 2773, .b = 119 }, | ||||
|     { .r = 4096, .g = 2911, .b = 119 }, | ||||
|     { .r = 4096, .g = 3053, .b = 119 }, | ||||
|     { .r = 4096, .g = 3199, .b = 119 }, | ||||
|     { .r = 4096, .g = 3349, .b = 119 }, | ||||
|     { .r = 4096, .g = 3502, .b = 119 }, | ||||
|     { .r = 4096, .g = 3659, .b = 119 }, | ||||
|     { .r = 4096, .g = 3820, .b = 119 }, | ||||
|     { .r = 4096, .g = 3984, .b = 119 }, | ||||
|     { .r = 4040, .g = 4096, .b = 119 }, | ||||
|     { .r = 3874, .g = 4096, .b = 119 }, | ||||
|     { .r = 3712, .g = 4096, .b = 119 }, | ||||
|     { .r = 3554, .g = 4096, .b = 119 }, | ||||
|     { .r = 3399, .g = 4096, .b = 119 }, | ||||
|     { .r = 3249, .g = 4096, .b = 119 }, | ||||
|     { .r = 3102, .g = 4096, .b = 119 }, | ||||
|     { .r = 2958, .g = 4096, .b = 119 }, | ||||
|     { .r = 2819, .g = 4096, .b = 119 }, | ||||
|     { .r = 2683, .g = 4096, .b = 119 }, | ||||
|     { .r = 2550, .g = 4096, .b = 119 }, | ||||
|     { .r = 2422, .g = 4096, .b = 119 }, | ||||
|     { .r = 2297, .g = 4096, .b = 119 }, | ||||
|     { .r = 2175, .g = 4096, .b = 119 }, | ||||
|     { .r = 2057, .g = 4096, .b = 119 }, | ||||
|     { .r = 1943, .g = 4096, .b = 119 }, | ||||
|     { .r = 1832, .g = 4096, .b = 119 }, | ||||
|     { .r = 1725, .g = 4096, .b = 119 }, | ||||
|     { .r = 1621, .g = 4096, .b = 119 }, | ||||
|     { .r = 1521, .g = 4096, .b = 119 }, | ||||
|     { .r = 1425, .g = 4096, .b = 119 }, | ||||
|     { .r = 1331, .g = 4096, .b = 119 }, | ||||
|     { .r = 1242, .g = 4096, .b = 119 }, | ||||
|     { .r = 1155, .g = 4096, .b = 119 }, | ||||
|     { .r = 1072, .g = 4096, .b = 119 }, | ||||
|     { .r = 992, .g = 4096, .b = 119 }, | ||||
|     { .r = 916, .g = 4096, .b = 119 }, | ||||
|     { .r = 843, .g = 4096, .b = 119 }, | ||||
|     { .r = 773, .g = 4096, .b = 119 }, | ||||
|     { .r = 707, .g = 4096, .b = 119 }, | ||||
|     { .r = 644, .g = 4096, .b = 119 }, | ||||
|     { .r = 584, .g = 4096, .b = 119 }, | ||||
|     { .r = 527, .g = 4096, .b = 119 }, | ||||
|     { .r = 473, .g = 4096, .b = 119 }, | ||||
|     { .r = 423, .g = 4096, .b = 119 }, | ||||
|     { .r = 375, .g = 4096, .b = 119 }, | ||||
|     { .r = 331, .g = 4096, .b = 119 }, | ||||
|     { .r = 290, .g = 4096, .b = 119 }, | ||||
|     { .r = 251, .g = 4096, .b = 119 }, | ||||
|     { .r = 216, .g = 4096, .b = 119 }, | ||||
|     { .r = 184, .g = 4096, .b = 119 }, | ||||
|     { .r = 154, .g = 4096, .b = 119 }, | ||||
|     { .r = 127, .g = 4096, .b = 119 }, | ||||
|     { .r = 119, .g = 4096, .b = 136 }, | ||||
|     { .r = 119, .g = 4096, .b = 163 }, | ||||
|     { .r = 119, .g = 4096, .b = 194 }, | ||||
|     { .r = 119, .g = 4096, .b = 227 }, | ||||
|     { .r = 119, .g = 4096, .b = 264 }, | ||||
|     { .r = 119, .g = 4096, .b = 303 }, | ||||
|     { .r = 119, .g = 4096, .b = 346 }, | ||||
|     { .r = 119, .g = 4096, .b = 391 }, | ||||
|     { .r = 119, .g = 4096, .b = 439 }, | ||||
|     { .r = 119, .g = 4096, .b = 491 }, | ||||
|     { .r = 119, .g = 4096, .b = 546 }, | ||||
|     { .r = 119, .g = 4096, .b = 603 }, | ||||
|     { .r = 119, .g = 4096, .b = 665 }, | ||||
|     { .r = 119, .g = 4096, .b = 729 }, | ||||
|     { .r = 119, .g = 4096, .b = 796 }, | ||||
|     { .r = 119, .g = 4096, .b = 867 }, | ||||
|     { .r = 119, .g = 4096, .b = 941 }, | ||||
|     { .r = 119, .g = 4096, .b = 1019 }, | ||||
|     { .r = 119, .g = 4096, .b = 1099 }, | ||||
|     { .r = 119, .g = 4096, .b = 1184 }, | ||||
|     { .r = 119, .g = 4096, .b = 1271 }, | ||||
|     { .r = 119, .g = 4096, .b = 1362 }, | ||||
|     { .r = 119, .g = 4096, .b = 1456 }, | ||||
|     { .r = 119, .g = 4096, .b = 1554 }, | ||||
|     { .r = 119, .g = 4096, .b = 1656 }, | ||||
|     { .r = 119, .g = 4096, .b = 1760 }, | ||||
|     { .r = 119, .g = 4096, .b = 1869 }, | ||||
|     { .r = 119, .g = 4096, .b = 1981 }, | ||||
|     { .r = 119, .g = 4096, .b = 2096 }, | ||||
|     { .r = 119, .g = 4096, .b = 2215 }, | ||||
|     { .r = 119, .g = 4096, .b = 2338 }, | ||||
|     { .r = 119, .g = 4096, .b = 2464 }, | ||||
|     { .r = 119, .g = 4096, .b = 2594 }, | ||||
|     { .r = 119, .g = 4096, .b = 2728 }, | ||||
|     { .r = 119, .g = 4096, .b = 2865 }, | ||||
|     { .r = 119, .g = 4096, .b = 3006 }, | ||||
|     { .r = 119, .g = 4096, .b = 3150 }, | ||||
|     { .r = 119, .g = 4096, .b = 3298 }, | ||||
|     { .r = 119, .g = 4096, .b = 3450 }, | ||||
|     { .r = 119, .g = 4096, .b = 3606 }, | ||||
|     { .r = 119, .g = 4096, .b = 3766 }, | ||||
|     { .r = 119, .g = 4096, .b = 3929 }, | ||||
|     { .r = 119, .g = 4096, .b = 4096 }, | ||||
|     { .r = 119, .g = 3929, .b = 4096 }, | ||||
|     { .r = 119, .g = 3766, .b = 4096 }, | ||||
|     { .r = 119, .g = 3606, .b = 4096 }, | ||||
|     { .r = 119, .g = 3450, .b = 4096 }, | ||||
|     { .r = 119, .g = 3298, .b = 4096 }, | ||||
|     { .r = 119, .g = 3150, .b = 4096 }, | ||||
|     { .r = 119, .g = 3006, .b = 4096 }, | ||||
|     { .r = 119, .g = 2865, .b = 4096 }, | ||||
|     { .r = 119, .g = 2728, .b = 4096 }, | ||||
|     { .r = 119, .g = 2594, .b = 4096 }, | ||||
|     { .r = 119, .g = 2464, .b = 4096 }, | ||||
|     { .r = 119, .g = 2338, .b = 4096 }, | ||||
|     { .r = 119, .g = 2215, .b = 4096 }, | ||||
|     { .r = 119, .g = 2096, .b = 4096 }, | ||||
|     { .r = 119, .g = 1981, .b = 4096 }, | ||||
|     { .r = 119, .g = 1869, .b = 4096 }, | ||||
|     { .r = 119, .g = 1760, .b = 4096 }, | ||||
|     { .r = 119, .g = 1656, .b = 4096 }, | ||||
|     { .r = 119, .g = 1554, .b = 4096 }, | ||||
|     { .r = 119, .g = 1456, .b = 4096 }, | ||||
|     { .r = 119, .g = 1362, .b = 4096 }, | ||||
|     { .r = 119, .g = 1271, .b = 4096 }, | ||||
|     { .r = 119, .g = 1184, .b = 4096 }, | ||||
|     { .r = 119, .g = 1099, .b = 4096 }, | ||||
|     { .r = 119, .g = 1019, .b = 4096 }, | ||||
|     { .r = 119, .g = 941, .b = 4096 }, | ||||
|     { .r = 119, .g = 867, .b = 4096 }, | ||||
|     { .r = 119, .g = 796, .b = 4096 }, | ||||
|     { .r = 119, .g = 729, .b = 4096 }, | ||||
|     { .r = 119, .g = 665, .b = 4096 }, | ||||
|     { .r = 119, .g = 603, .b = 4096 }, | ||||
|     { .r = 119, .g = 546, .b = 4096 }, | ||||
|     { .r = 119, .g = 491, .b = 4096 }, | ||||
|     { .r = 119, .g = 439, .b = 4096 }, | ||||
|     { .r = 119, .g = 391, .b = 4096 }, | ||||
|     { .r = 119, .g = 346, .b = 4096 }, | ||||
|     { .r = 119, .g = 303, .b = 4096 }, | ||||
|     { .r = 119, .g = 264, .b = 4096 }, | ||||
|     { .r = 119, .g = 227, .b = 4096 }, | ||||
|     { .r = 119, .g = 194, .b = 4096 }, | ||||
|     { .r = 119, .g = 163, .b = 4096 }, | ||||
|     { .r = 119, .g = 136, .b = 4096 }, | ||||
|     { .r = 127, .g = 119, .b = 4096 }, | ||||
|     { .r = 154, .g = 119, .b = 4096 }, | ||||
|     { .r = 184, .g = 119, .b = 4096 }, | ||||
|     { .r = 216, .g = 119, .b = 4096 }, | ||||
|     { .r = 251, .g = 119, .b = 4096 }, | ||||
|     { .r = 290, .g = 119, .b = 4096 }, | ||||
|     { .r = 331, .g = 119, .b = 4096 }, | ||||
|     { .r = 375, .g = 119, .b = 4096 }, | ||||
|     { .r = 423, .g = 119, .b = 4096 }, | ||||
|     { .r = 473, .g = 119, .b = 4096 }, | ||||
|     { .r = 527, .g = 119, .b = 4096 }, | ||||
|     { .r = 584, .g = 119, .b = 4096 }, | ||||
|     { .r = 644, .g = 119, .b = 4096 }, | ||||
|     { .r = 707, .g = 119, .b = 4096 }, | ||||
|     { .r = 773, .g = 119, .b = 4096 }, | ||||
|     { .r = 843, .g = 119, .b = 4096 }, | ||||
|     { .r = 916, .g = 119, .b = 4096 }, | ||||
|     { .r = 992, .g = 119, .b = 4096 }, | ||||
|     { .r = 1072, .g = 119, .b = 4096 }, | ||||
|     { .r = 1155, .g = 119, .b = 4096 }, | ||||
|     { .r = 1242, .g = 119, .b = 4096 }, | ||||
|     { .r = 1331, .g = 119, .b = 4096 }, | ||||
|     { .r = 1425, .g = 119, .b = 4096 }, | ||||
|     { .r = 1521, .g = 119, .b = 4096 }, | ||||
|     { .r = 1621, .g = 119, .b = 4096 }, | ||||
|     { .r = 1725, .g = 119, .b = 4096 }, | ||||
|     { .r = 1832, .g = 119, .b = 4096 }, | ||||
|     { .r = 1943, .g = 119, .b = 4096 }, | ||||
|     { .r = 2057, .g = 119, .b = 4096 }, | ||||
|     { .r = 2175, .g = 119, .b = 4096 }, | ||||
|     { .r = 2297, .g = 119, .b = 4096 }, | ||||
|     { .r = 2422, .g = 119, .b = 4096 }, | ||||
|     { .r = 2550, .g = 119, .b = 4096 }, | ||||
|     { .r = 2683, .g = 119, .b = 4096 }, | ||||
|     { .r = 2819, .g = 119, .b = 4096 }, | ||||
|     { .r = 2958, .g = 119, .b = 4096 }, | ||||
|     { .r = 3102, .g = 119, .b = 4096 }, | ||||
|     { .r = 3249, .g = 119, .b = 4096 }, | ||||
|     { .r = 3399, .g = 119, .b = 4096 }, | ||||
|     { .r = 3554, .g = 119, .b = 4096 }, | ||||
|     { .r = 3712, .g = 119, .b = 4096 }, | ||||
|     { .r = 3874, .g = 119, .b = 4096 }, | ||||
|     { .r = 4040, .g = 119, .b = 4096 }, | ||||
|     { .r = 4096, .g = 119, .b = 3984 }, | ||||
|     { .r = 4096, .g = 119, .b = 3820 }, | ||||
|     { .r = 4096, .g = 119, .b = 3659 }, | ||||
|     { .r = 4096, .g = 119, .b = 3502 }, | ||||
|     { .r = 4096, .g = 119, .b = 3349 }, | ||||
|     { .r = 4096, .g = 119, .b = 3199 }, | ||||
|     { .r = 4096, .g = 119, .b = 3053 }, | ||||
|     { .r = 4096, .g = 119, .b = 2911 }, | ||||
|     { .r = 4096, .g = 119, .b = 2773 }, | ||||
|     { .r = 4096, .g = 119, .b = 2638 }, | ||||
|     { .r = 4096, .g = 119, .b = 2507 }, | ||||
|     { .r = 4096, .g = 119, .b = 2380 }, | ||||
|     { .r = 4096, .g = 119, .b = 2256 }, | ||||
|     { .r = 4096, .g = 119, .b = 2135 }, | ||||
|     { .r = 4096, .g = 119, .b = 2019 }, | ||||
|     { .r = 4096, .g = 119, .b = 1906 }, | ||||
|     { .r = 4096, .g = 119, .b = 1796 }, | ||||
|     { .r = 4096, .g = 119, .b = 1690 }, | ||||
|     { .r = 4096, .g = 119, .b = 1588 }, | ||||
|     { .r = 4096, .g = 119, .b = 1489 }, | ||||
|     { .r = 4096, .g = 119, .b = 1393 }, | ||||
|     { .r = 4096, .g = 119, .b = 1301 }, | ||||
|     { .r = 4096, .g = 119, .b = 1212 }, | ||||
|     { .r = 4096, .g = 119, .b = 1127 }, | ||||
|     { .r = 4096, .g = 119, .b = 1045 }, | ||||
|     { .r = 4096, .g = 119, .b = 967 }, | ||||
|     { .r = 4096, .g = 119, .b = 891 }, | ||||
|     { .r = 4096, .g = 119, .b = 820 }, | ||||
|     { .r = 4096, .g = 119, .b = 751 }, | ||||
|     { .r = 4096, .g = 119, .b = 686 }, | ||||
|     { .r = 4096, .g = 119, .b = 623 }, | ||||
|     { .r = 4096, .g = 119, .b = 565 }, | ||||
|     { .r = 4096, .g = 119, .b = 509 }, | ||||
|     { .r = 4096, .g = 119, .b = 456 }, | ||||
|     { .r = 4096, .g = 119, .b = 407 }, | ||||
|     { .r = 4096, .g = 119, .b = 360 }, | ||||
|     { .r = 4096, .g = 119, .b = 317 }, | ||||
|     { .r = 4096, .g = 119, .b = 277 }, | ||||
|     { .r = 4096, .g = 119, .b = 239 }, | ||||
|     { .r = 4096, .g = 119, .b = 205 }, | ||||
|     { .r = 4096, .g = 119, .b = 173 }, | ||||
|     { .r = 4096, .g = 119, .b = 145 }, | ||||
| }; | ||||
|  |  | |||
|  | @ -2,4 +2,4 @@ | |||
| 
 | ||||
| #include "led.h" | ||||
| 
 | ||||
| extern const LED_Colour_t Animation_ColourLUT[255]; | ||||
| extern const LED_Colour_t Animation_ColourLUT[256]; | ||||
|  |  | |||
							
								
								
									
										10
									
								
								src/led.c
									
										
									
									
									
								
							
							
						
						
									
										10
									
								
								src/led.c
									
										
									
									
									
								
							|  | @ -105,15 +105,13 @@ void LED_Commit(void) | |||
|     { | ||||
|         for(int i = 0; i < LED_COLUMNS; i++) | ||||
|         { | ||||
|             // Use pixel data as a raw byte buffer to get R, G, B in order
 | ||||
|             uint8_t colour_value = ((uint8_t*)LED_PixelData)[r * LED_COLUMNS + i]; | ||||
|             uint16_t gamma_corrected = (uint16_t)colour_value; | ||||
|             gamma_corrected *= gamma_corrected; | ||||
|             gamma_corrected >>= 16 - LED_BITS; | ||||
|             // Use pixel data as a raw word buffer to get R, G, B in order
 | ||||
|             uint16_t colour_value = | ||||
|                 ((uint16_t*)LED_PixelData)[r * LED_COLUMNS + i]; | ||||
| 
 | ||||
|             for(int j = 0; j < LED_BITS; j++) | ||||
|             { | ||||
|                 if(gamma_corrected & (1 << j)) | ||||
|                 if(colour_value & (1 << j)) | ||||
|                 { | ||||
|                     LED_BackBuffer[r * (LED_BITS + 1) + j] &= | ||||
|                         ~(1 << LED_Pins[i]); | ||||
|  |  | |||
|  | @ -14,10 +14,10 @@ | |||
| 
 | ||||
| typedef struct | ||||
| { | ||||
|     uint8_t r; | ||||
|     uint8_t g; | ||||
|     uint8_t b; | ||||
| } __attribute__((packed)) LED_Colour_t; | ||||
|     uint16_t r; | ||||
|     uint16_t g; | ||||
|     uint16_t b; | ||||
| } __attribute__((packed, aligned(2))) LED_Colour_t; | ||||
| 
 | ||||
| // Pixel data, not displayed until LED_Commit() is called
 | ||||
| extern LED_Colour_t LED_PixelData[LED_COUNT]; | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue