2013-07-23 5 views
2

Почему в 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?

ответ

3

У пользователя261391 есть первая проблема с вашим кодом. Затем вы быстро обнаружите, что вам также необходимо включить 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); 
} 
0

Возможно, вы забыли включить библиотеку?

+0

Включено avr/io.h Забыл упомянуть в коде. Обновлено! – Akshat

5

Обычные чипы AVR, используемые в Arduinos, не имеют регистра регистра A, обычно это B/C/D.

0

У меня была такая же проблема ...

Дело в том, что тип Arduino, вероятно, установлен на Arduino Uno, который имеет другую DDRA определенную (я думаю) ... Вы можете установить тип в

Tools-> board-> Arduino Mega 2560

, если вы хотите только скомпилировать его и посмотреть, нет ли в коде ошибки.

Смежные вопросы