【问题标题】:Arduino Void LoopArduino 无效循环
【发布时间】:2022-01-21 10:00:18
【问题描述】:

对于课堂,我开发了以下代码。另一方面,我的老师要我浓缩它。如果有人有任何建议,我将不胜感激。谢谢。

    void setup()
{
  DDRD = 0b11111111;
  DDRB = 0b00000001;
}

void loop()
 
{
  PORTD = 0b00000001;
  PORTB = 0b00000000;
  delay(t);
  PORTD = 0b00000010;
  PORTB = 0b00000000;
  delay(t);
  PORTD = 0b00000100;
  PORTB = 0b00000000;
  delay(t);
  PORTD = 0b00001000;
  PORTB = 0b00000000;
  delay(t);
  PORTD = 0b00010000;
  PORTB = 0b00000000;
  delay(t);
  PORTD = 0b00100000;
  PORTB = 0b00000000;
  delay(t);
  PORTD = 0b01000000;
  PORTB = 0b00000000;
  delay(t);
  PORTD = 0b10000000;
  PORTB = 0b00000000;
  delay(;
  PORTD = 0b00000000;
  PORTB = 0b00000001;
  delay(t);
  
}

【问题讨论】:

  • 您可以使用 for 循环将 PORTD 设置为包含 1

标签: arduino void


【解决方案1】:

这应该循环通过您想要设置 PORTD 的值。它为每个循环移动一次“1”位,并且因为 bitval 只能保存一个字节(8 位),所以第八次移位将使 bitval 为零,从而结束循环。

void loop()
{
    for (byte bitval = 1; bitval != 0; bitval <<= 1)
    {
        PORTD = bitval;
        PORTB = 0;
        delay(t);
    }
    PORTD = 0;
    PORTB = 1;
    delay(t);
}

【讨论】:

  • 非常感谢!!你摇滚!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-10
  • 1970-01-01
相关资源
最近更新 更多