2014-11-27 1 views
1

У меня есть вопрос о ATmega128 (UART) Эта программа отправляет приветственное сообщение через UART.ATmega128 - UCSROA uneclared (первое использование при этой функции)

Следующий мой код.

#include <avr/io.h> 

void putch(unsigned char data) 
{ 
    while((UCSROA & 0x20) == 0); 
    UDR0 = data; 
    UCSROA |= 0x20; 
} 

int main() 
{ 
    unsigned char text[] = "Hello! World!\r\n"; 
    unsigned char i = 0; 

    DDRE = 0xFE; 
    UCSROA = 0x00; 
    UCSROB = 0x18; 
    UCSROC = 0x06; 
    UBRROH = 0x00; 
    UBRROL = 0x03; 

    while(text[i] != '\0') 
    putch(text[i++]); 
    return 0; 

} 

Это сообщение об ошибке.

Build succeeded with 0 Warnings... 
avr-gcc -mmcu=atmega128 -Wall -gdwarf-2 -std=gnu99 -DF_CPU=7372800UL -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -MD -MP -MT Hello.o -MF dep/Hello.o.d -c ../Hello.c 
../Hello.c: In function 'putch': 
../Hello.c:5: error: 'UCSROA' undeclared (first use in this function) 
../Hello.c:5: error: (Each undeclared identifier is reported only once 
../Hello.c:5: error: for each function it appears in.) 
../Hello.c: In function 'main': 
../Hello.c:16: error: 'UCSROA' undeclared (first use in this function) 
../Hello.c:17: error: 'UCSROB' undeclared (first use in this function) 
../Hello.c:18: error: 'UCSROC' undeclared (first use in this function) 
../Hello.c:19: error: 'UBRROH' undeclared (first use in this function) 
../Hello.c:20: error: 'UBRROL' undeclared (first use in this function) 
make: *** [Hello.o] Error 1 Build failed with 8 errors and 0 warnings... 

Я проверил свой код на других компьютерах.
Но, это не работает.
Я не знаю, как исправить эту проблему.

Дайте мне совет.
Спасибо.

ответ

1

Его не

UCSR O

с буквой "О", это

UCSR0A

с номером 0.

+0

Другие необъявленные слова используют '0' вместо' O'. – UncleO