Цитата(vadimuzzz @ Jul 4 2008, 03:03)

макрос IOWR_ALTERA_AVALON_UART_TXDATA определен в "altera_avalon_uart_regs.h"
"altera_avalon_uart.h" - это для HAL, удобно если с printf/scanf работать.
"altera_avalon_uart_regs.h" - для работы с регистрами напрямую.
Для Men
Все правильно, я поторопился по поводу IOWR_ALTERA_AVALON_UART_TXDATA(UART_BASE, 0x55);
Подключайте к своей программе
#include "system.h"
#include "altera_avalon_uart_regs.h" в первом значение константы UART_BASE, что сгененрировано от SOPC, во втором макросы. Еще к ним добавить
#include "alt_types.h"Теперь, если без прерываний, то нужно периодически, например через 1 мс, выполнять функцию приема и выдачи, в соответствии с заданными в начале топика условиями:
void rs232 ()
{
alt_u16 word;
alt_u8 byte;
word=IORD_ALTERA_AVALON_UART_STATUS(UART_BASE);
if (word & ALTERA_AVALON_UART_STATUS_RRDY_MSK)
{byte=IORD_ALTERA_AVALON_UART_RXDATA(UART_BASE);
byte++;
IOWR_ALTERA_AVALON_UART_TXDATA(UART_BASE, byte);
};
}
Некоторые подобное делают без макросов, но можно и с ними. Удачи.
Сообщение отредактировал 608 - Jul 4 2008, 05:42