Arduino 无效循环

Posted

技术标签:

【中文标题】Arduino 无效循环【英文标题】:Arduino Void Loop 【发布时间】: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 【参考方案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);

【讨论】:

非常感谢!!你摇滚!

以上是关于Arduino 无效循环的主要内容,如果未能解决你的问题,请参考以下文章

arduino for循环 时间控制?

arduino打印for循环变量出错?

Python 串行读取线是不是会中断 Arduino 循环?

Empty While 循环 - Arduino

在循环arduino中接收套接字(用套接字中断while循环)

arduino呼吸灯流水编程问题