Quantcast
Channel: Altera Forums
Viewing all articles
Browse latest Browse all 19390

operate UART w/ NIOS wo/ HAL

$
0
0
The following code should make a loopback between UART RX and TX (echo).
However, it seems that first N typed chars (from PC towards the board) are not successfully absorbed.
After N characters (few dozens, I guess), it works correctly (I get an echo for each character I type).
Any ideas?


Code:

#include "altera_avalon_uart_regs.h"
#include "system.h"


typedef unsigned char      u8;
typedef unsigned short    u16;
typedef unsigned int      u32;


#define UART_BASE        UART_0_BASE


int main ()
{
    u8  uart_rx_char;
    u16 uart_st_reg;


    while (1) {
        uart_st_reg = (u16)IORD_ALTERA_AVALON_UART_STATUS(UART_BASE);
        if (uart_st_reg & ALTERA_AVALON_UART_STATUS_RRDY_MSK) {
            uart_rx_char = (u8)IORD_ALTERA_AVALON_UART_RXDATA(UART_BASE);
            IOWR_ALTERA_AVALON_UART_TXDATA(UART_BASE, uart_rx_char);
        }
    }


    return 0;
}


Viewing all articles
Browse latest Browse all 19390

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>