Browse Source

Light: move gamma to PROGMEM

master
Max Prokhorov 5 years ago
parent
commit
5883617ee6
1 changed files with 2 additions and 3 deletions
  1. +2
    -3
      code/espurna/light.ino

+ 2
- 3
code/espurna/light.ino View File

@ -70,8 +70,7 @@ const char _light_channel_desc[5][5] PROGMEM = {
}; };
// Gamma Correction lookup table (8 bit) // Gamma Correction lookup table (8 bit)
// TODO: move to PROGMEM
const unsigned char _light_gamma_table[] = {
const unsigned char _light_gamma_table[] PROGMEM = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2,
3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 6, 6, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 6, 6,
@ -454,7 +453,7 @@ void _toCSV(char * buffer, size_t len, bool applyBrightness) {
unsigned int _toPWM(unsigned long value, bool gamma, bool reverse) { unsigned int _toPWM(unsigned long value, bool gamma, bool reverse) {
value = constrain(value, 0, LIGHT_MAX_VALUE); value = constrain(value, 0, LIGHT_MAX_VALUE);
if (gamma) value = _light_gamma_table[value];
if (gamma) value = pgm_read_byte(_light_gamma_table + value);
if (LIGHT_MAX_VALUE != LIGHT_LIMIT_PWM) value = map(value, 0, LIGHT_MAX_VALUE, 0, LIGHT_LIMIT_PWM); if (LIGHT_MAX_VALUE != LIGHT_LIMIT_PWM) value = map(value, 0, LIGHT_MAX_VALUE, 0, LIGHT_LIMIT_PWM);
if (reverse) value = LIGHT_LIMIT_PWM - value; if (reverse) value = LIGHT_LIMIT_PWM - value;
return value; return value;


Loading…
Cancel
Save