不, 校准应至少进行一次(制造/首次使用),之后可将校准值存储到内部非易失性存储器中,以便在随后的开机过程中使用,如下例所示。
// 如果 EEPROM 以字节 0x7c 开始,那么它已经保存了
// 24 字节触摸屏校准值。
如果 (istouch() || (EEPROM.read(0) != 0x7c)) {
blank();
while (istouch())
;
VC.wr(REG_PWM_DUTY, 128);
MEMCMD(start_clear);
VC.cmd_text(screen.w/2, screen.h/2, 28, OPT_CENTERX|OPT_CENTERY, “please tap on the dot”);
BLK_START
CMD_CALIBRATE,
0
BLK_END
VC.waitidle();
for (int i = 0; i < 24; i++)
EEPROM.write(1 + i, VC.rd(REG_TOUCH_TRANSFORM_A + i));
EEPROM.write(0, 0x7c); // is written!
}
else {
for (int i = 0; i < 24; i++)
VC.wr(REG_TOUCH_TRANSFORM_A + i, EEPROM.read(1 + i));
}