背景
我正在使用基于8052的微控制器.我有一个LCD和编码器轮连接起来.用户可以通过旋转和按压编码器轮来浏览LCD上显示的菜单.
编码器轮的旋转是基于中断的.
编码器轮的旋转方向(encoder_turn)设置在编码器中断内.
我update_lcd()在一个循环里面打电话.
新的响应代码
void update_lcd()
{
//ENCODER TURN
switch(encoder_turn)
{
case RIGHT:
lcd_clear();
next_screen();
break;
case LEFT:
lcd_clear();
previous_screen();
break;
default:
break;
}
}
void next_screen()
{
if(current_test_screen < screen5)
{
current_test_screen++;
}
draw_current_test_screen();
}
void draw_current_test_screen()
{
switch(current_test_screen)
{
case screen1:
draw_screen1();
break;
case screen2:
draw_screen2();
break;
case screen3:
draw_screen3();
break;
case screen4:
draw_screen4();
break;
case screen5:
draw_screen5();
break;
default:
break;
}
}
Run Code Online (Sandbox Code Playgroud)
旧的反应迟钝的代码
void update_lcd()
{
//ENCODER TURN
switch(encoder_turn)
{
case …Run Code Online (Sandbox Code Playgroud)