小编dun*_*008的帖子

单击计数器以使用C代码点亮LED

我正在为微控制器设计一个点击计数器,并使用C来开发代码。

这里发生的是,当我单击第一个按钮时,它将计算按钮按下的次数。然后,我必须按第二个按钮以二进制方式点亮LED来显示计数。例如,如果我按第一个按钮10次,它将点亮第二个LED和第四个LED。

因为有8个LED,所以我使用2个不同的端口。(PORTB有6位,PORTD有2位)。为此,我使用if / else开发了一个代码。但是我想在没有多个if / else操作的情况下实现此操作因为这种方法似乎效率不高。

while(PIND & 0b00100000){                   //while PD5 switch is not pressed
        if(clickCount>=128){                //if click count>=128
            PORTB = PORTB | 0b00100000;     //set PB5 HIGH
            clickCount-=128;                //deduct 128 from clickCount
        }else if(clickCount>=64){
            PORTB = PORTB | 0b00010000;
            clickCount-=64;
        }else if(clickCount>=32){
            PORTB = PORTB | 0b00001000;
            clickCount-=32;
        }else if(clickCount>=16){
            PORTB = PORTB | 0b00000100;
            clickCount-=16;
        }else if(clickCount>=8){
            PORTB = PORTB | 0b00000010;
            clickCount-=8;
        }else if(clickCount>=4){
            PORTB = PORTB | 0b00000001;
            clickCount-=4;
        }else …
Run Code Online (Sandbox Code Playgroud)

c atmelstudio arduino-uno

5
推荐指数
1
解决办法
189
查看次数

标签 统计

arduino-uno ×1

atmelstudio ×1

c ×1