2

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

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

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

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

4

4 回答 4

5

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

于 2013-07-23T13:51:39.180 回答
3

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);
}
于 2013-07-23T16:29:06.550 回答
0

您是否可能忘记包含一些库?

于 2013-07-23T11:40:00.613 回答
0

我有同样的问题...

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

工具->板->Arduino Mega 2560

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

于 2017-01-16T00:04:23.117 回答