gpt4 book ai didi

c - 闪烁其他 LED 时无法保持某些 LED 的 : ON ,

转载 作者:太空宇宙 更新时间:2023-11-04 05:29:12 29 4
gpt4 key购买 nike

我使用 AVR 作为微 Controller ,ATMEGA8 作为处理器(在微 Controller 内部)。带有微 Controller 的电路板有 4 个 LED。我能够刻录程序并点亮 LEDS。但是我无法实现特定的目标。

L1 L2  L3 L4

这是 4 个 LED。在第一轮中,每个 LED 在间隔 3 秒后亮起。最后一个 LED(L4)在第一轮后保持点亮。随着第三轮开始,每个 LED 间隔 3 秒点亮,L3 在 L4 也亮起时保持点亮点亮并继续……直到 L1。

L1 L2 L3 L4
On
On On
On On On
On On On On

但是我无法做到这一点。因为当我将一个 LED 设置为 ON 时,其他 LED 熄灭。我什至尝试添加一个 10 毫秒的小时间间隔。我该怎么做呢 ?这是我到目前为止所拥有的:

    #include<avr/io.h>
#include<util/delay.h>
DDRB = 0xFF; // input
//PORTB = 0xFF;

// ob00011110 --> on all --> binary

int i=0;

while(i<1) {
PORTB = 0b00010000; // first led on
_delay_ms(3000);
PORTB = 0b00001000; // second led on
_delay_ms(3000);
PORTB = 0b00000100; // third on
_delay_ms(3000);
PORTB = 0b00000010; // fourth on
_delay_ms(3000);
i += 1;
}

PORTB = 0b00000010; // keep the 4th on and start all over again and reach til 3rd LED

最佳答案

看来你的顺序是错误的。当您打开第二个 LED 时,您将关闭第一个 LED。顺序应该是:

  PORTB = 0b00010000; // first led only
_delay_ms(3000);
PORTB = 0b00011000; // first and second led on
_delay_ms(3000);
PORTB = 0b00011100; // first, second, and third on
_delay_ms(3000);
PORTB = 0b00011110; // first, second, third, and fourth on
_delay_ms(3000);

关于c - 闪烁其他 LED 时无法保持某些 LED 的 : ON ,,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12546586/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com