小编hfi*_*ter的帖子

为什么这些嵌入式c代码的安排如此不同?

背景

我正在使用基于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)

c embedded interrupt

3
推荐指数
1
解决办法
133
查看次数

标签 统计

c ×1

embedded ×1

interrupt ×1