- // 波纹动画 (仅256字节Flash + 16字节RAM)
- void water_ripple() {
- static uint8_t phase = 0;
- uint8_t pattern[8] = {0};
-
- for(uint8_t i=0; i<8; i++) {
- pattern[i] = sin_tab[(phase + i*10) % 64] > 128 ? 0xFF : 0;
- }
-
- for(uint8_t page=0; page<8; page++) {
- set_cursor(0, page);
- for(uint8_t col=0; col<128; col++) {
- uint8_t p = pattern[(page + (col>>2)) & 0x07];
- write_data(p);
- }
- }
- phase++;
- }
- // 64字节正弦表 (Q7格式)
- const uint8_t sin_tab[64] = {
- 128,140,152,164,176,188,198,208,218,226,234,240,245,250,253,255,
- 255,253,250,245,240,234,226,218,208,198,188,176,164,152,140,128,
- 115,103,91,79,67,55,45,35,25,17,9,3,0,0,0,0,
- 0,0,0,0,3,9,17,25,35,45,55,67,79,91,103,115
- };
效果:流畅动画仅占用极少量资源