// 波纹动画 (仅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
};