【问题标题】:How to compile AVR code in Arduino?如何在 Arduino 中编译 AVR 代码?
【发布时间】:2013-07-23 11:36:01
【问题描述】:

为什么以下代码在 Arduino 中不起作用?

#include<avr/io.h>
void setup()
{
    DDRA = 0xFF;
}
void loop()
{
    PORTA = 0xAA;
    _delay_ms(1000);
    PORTA = 0x55;
    _delay_ms(1000);
}

我收到以下错误。 “DDRA 未在此范围内声明。”

据我所知,arduino 使用 AVR 微控制器,所以我们为什么不能使用 AVR 代码 在 arduino 板上?

【问题讨论】:

    标签: arduino avr


    【解决方案1】:

    Arduinos中使用的普通AVR芯片没有端口A寄存器,通常是B/C/D。

    【讨论】:

      【解决方案2】:

      User261391 的第一个问题是您的代码。然后您会很快发现您还需要包含 delay.h 才能使延迟起作用。

      修改示例:

      #include<avr/io.h>
      #include<avr/delay.h>
      void setup()
      {
          DDRB = 0xFF;
      }
      void loop()
      {
          PORTB = 0xAA;
          _delay_ms(1000);
          PORTB = 0x55;
          _delay_ms(1000);
      }
      

      【讨论】:

        【解决方案3】:

        您可能忘记包含一些库吗?

        【讨论】:

        • 我包含了 avr/io.h 忘记在代码中提及了。现已更新!
        【解决方案4】:

        我也遇到了同样的问题……

        问题是Arduino类型可能设置为Arduino Uno,它定义了不同的DDRA(我猜)......你可以在

        中设置类型

        工具->板子->Arduino Mega 2560

        如果你只想编译它,看看代码有没有错误。

        【讨论】:

          猜你喜欢
          • 2021-04-05
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-10-26
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2022-12-18
          相关资源
          最近更新 更多