#include "project.h" static uint8_t code[16]; static int code_len; static int hide; static int show; void code_display (void) { size_t i; #if 1 lcd_erase_line (0, 16); if (code_len != 16) lcd_write ("Enter code:", 0, 0); else lcd_write ("Code entered:", 0, 0); #endif for (i = 0; i < sizeof (code); ++i) lcd_write_char (hide ? '*' : (code[i] ? code[i] : ' '), i, 1); lcd_backlight (!hide); } void code_tick (void) { if (!show) return; show--; if (!show) { hide++; code_display (); } } void key_event (uint8_t v, int ud) { if (!ud) return; if (code_len == sizeof (code)) { code_len = 0; memset (code, ' ', sizeof (code)); } show = 5000; hide = 0; code[code_len++] = v; code_display (); }