1
0
Fork 0

If RGBLIGHT_EFFECT_BREATHE_CENTER is undefined, use fixed breathe table instead of exp() and sin() (#5484)

* If RGBLIGHT_EFFECT_BREATHE_CENTER is undefined, use fixed breathe table instead of exp() and sin()

* Change rgblight breathing table size to be easily selectable.

add RGBLIGHT_BREATHE_TABLE_SIZE macro for customize breathing effect.
This commit is contained in:
Takeshi ISHII 2019-05-02 23:59:29 +09:00 committed by MechMerlin
parent 4db31fb374
commit 3da8d46a07
6 changed files with 185 additions and 4 deletions

View file

@ -0,0 +1,116 @@
#ifndef RGBLIGHT_EFFECT_BREATHE_TABLE
#define RGBLIGHT_EFFECT_BREATHE_TABLE
const uint8_t rgblight_effect_breathe_table[] PROGMEM = {
/* #define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 */
/* #define RGBLIGHT_EFFECT_BREATHE_MAX 255 */
#if RGBLIGHT_BREATHE_TABLE_SIZE == 256
0x22, 0x23, 0x25, 0x26, 0x28, 0x29, 0x2a, 0x2c,
0x2d, 0x2f, 0x30, 0x32, 0x33, 0x35, 0x36, 0x38,
0x3a, 0x3b, 0x3d, 0x3e, 0x40, 0x42, 0x43, 0x45,
0x47, 0x49, 0x4a, 0x4c, 0x4e, 0x50, 0x51, 0x53,
0x55, 0x57, 0x59, 0x5a, 0x5c, 0x5e, 0x60, 0x62,
0x64, 0x66, 0x68, 0x69, 0x6b, 0x6d, 0x6f, 0x71,
0x73, 0x75, 0x77, 0x79, 0x7b, 0x7d, 0x7f, 0x81,
0x83, 0x85, 0x87, 0x89, 0x8a, 0x8c, 0x8e, 0x90,
0x92, 0x94, 0x96, 0x98, 0x9a, 0x9c, 0x9e, 0x9f,
0xa1, 0xa3, 0xa5, 0xa7, 0xa8, 0xaa, 0xac, 0xae,
0xaf, 0xb1, 0xb3, 0xb4, 0xb6, 0xb8, 0xb9, 0xbb,
0xbc, 0xbe, 0xbf, 0xc1, 0xc2, 0xc3, 0xc5, 0xc6,
0xc7, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xd0,
0xd1, 0xd2, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7,
0xd7, 0xd8, 0xd9, 0xd9, 0xda, 0xda, 0xdb, 0xdb,
0xdb, 0xdc, 0xdc, 0xdc, 0xdc, 0xdc, 0xdd, 0xdd,
0xdd, 0xdd, 0xdc, 0xdc, 0xdc, 0xdc, 0xdc, 0xdb,
0xdb, 0xdb, 0xda, 0xda, 0xd9, 0xd9, 0xd8, 0xd7,
0xd7, 0xd6, 0xd5, 0xd4, 0xd3, 0xd2, 0xd2, 0xd1,
0xd0, 0xce, 0xcd, 0xcc, 0xcb, 0xca, 0xc9, 0xc7,
0xc6, 0xc5, 0xc3, 0xc2, 0xc1, 0xbf, 0xbe, 0xbc,
0xbb, 0xb9, 0xb8, 0xb6, 0xb4, 0xb3, 0xb1, 0xaf,
0xae, 0xac, 0xaa, 0xa8, 0xa7, 0xa5, 0xa3, 0xa1,
0x9f, 0x9e, 0x9c, 0x9a, 0x98, 0x96, 0x94, 0x92,
0x90, 0x8e, 0x8c, 0x8a, 0x89, 0x87, 0x85, 0x83,
0x81, 0x7f, 0x7d, 0x7b, 0x79, 0x77, 0x75, 0x73,
0x71, 0x6f, 0x6d, 0x6b, 0x69, 0x68, 0x66, 0x64,
0x62, 0x60, 0x5e, 0x5c, 0x5a, 0x59, 0x57, 0x55,
0x53, 0x51, 0x50, 0x4e, 0x4c, 0x4a, 0x49, 0x47,
0x45, 0x43, 0x42, 0x40, 0x3e, 0x3d, 0x3b, 0x3a,
0x38, 0x36, 0x35, 0x33, 0x32, 0x30, 0x2f, 0x2d,
0x2c, 0x2a, 0x29, 0x28, 0x26, 0x25, 0x23, 0x22
#endif /* 256 bytes table */
#if RGBLIGHT_BREATHE_TABLE_SIZE == 128
0x22, 0x25, 0x28, 0x2a,
0x2d, 0x30, 0x33, 0x36,
0x3a, 0x3d, 0x40, 0x43,
0x47, 0x4a, 0x4e, 0x51,
0x55, 0x59, 0x5c, 0x60,
0x64, 0x68, 0x6b, 0x6f,
0x73, 0x77, 0x7b, 0x7f,
0x83, 0x87, 0x8a, 0x8e,
0x92, 0x96, 0x9a, 0x9e,
0xa1, 0xa5, 0xa8, 0xac,
0xaf, 0xb3, 0xb6, 0xb9,
0xbc, 0xbf, 0xc2, 0xc5,
0xc7, 0xca, 0xcc, 0xce,
0xd1, 0xd2, 0xd4, 0xd6,
0xd7, 0xd9, 0xda, 0xdb,
0xdb, 0xdc, 0xdc, 0xdd,
0xdd, 0xdc, 0xdc, 0xdc,
0xdb, 0xda, 0xd9, 0xd8,
0xd7, 0xd5, 0xd3, 0xd2,
0xd0, 0xcd, 0xcb, 0xc9,
0xc6, 0xc3, 0xc1, 0xbe,
0xbb, 0xb8, 0xb4, 0xb1,
0xae, 0xaa, 0xa7, 0xa3,
0x9f, 0x9c, 0x98, 0x94,
0x90, 0x8c, 0x89, 0x85,
0x81, 0x7d, 0x79, 0x75,
0x71, 0x6d, 0x69, 0x66,
0x62, 0x5e, 0x5a, 0x57,
0x53, 0x50, 0x4c, 0x49,
0x45, 0x42, 0x3e, 0x3b,
0x38, 0x35, 0x32, 0x2f,
0x2c, 0x29, 0x26, 0x23
#endif /* 128 bytes table */
#if RGBLIGHT_BREATHE_TABLE_SIZE == 64
0x22, 0x28,
0x2d, 0x33,
0x3a, 0x40,
0x47, 0x4e,
0x55, 0x5c,
0x64, 0x6b,
0x73, 0x7b,
0x83, 0x8a,
0x92, 0x9a,
0xa1, 0xa8,
0xaf, 0xb6,
0xbc, 0xc2,
0xc7, 0xcc,
0xd1, 0xd4,
0xd7, 0xda,
0xdb, 0xdc,
0xdd, 0xdc,
0xdb, 0xd9,
0xd7, 0xd3,
0xd0, 0xcb,
0xc6, 0xc1,
0xbb, 0xb4,
0xae, 0xa7,
0x9f, 0x98,
0x90, 0x89,
0x81, 0x79,
0x71, 0x69,
0x62, 0x5a,
0x53, 0x4c,
0x45, 0x3e,
0x38, 0x32,
0x2c, 0x26
#endif /* 64 bytes table */
};
static const int table_scale = 256/sizeof(rgblight_effect_breathe_table);
#endif /* RGBLIGHT_EFFECT_BREATHE_TABLE */