如何在Arduino中编译AVR代码



为什么以下代码在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板?

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

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);
}

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

我遇到了同样的问题。。。

问题是Arduino类型可能设置为Arduino Uno,它定义了不同的DDRA(我想)。。。您可以在中设置类型

工具->板->Arduino Mega 2560

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

最新更新