⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 simple_tx_isr.c

📁 altera串口源代码程序
💻 C
字号:
#include "excalibur.h"
#include "buffer.h"  // defines RXBUFSIZE and TXBUFSIZE

//Global variables
unsigned char RxBuf[RXBUFSIZE];	// the receiver buffer.
int RxHead = 0;			// the circular buffer index
int RxTail = 0;
unsigned char TxBuf[TXBUFSIZE];	// the transmit buffer.
int TxHead = 0;			// the circular buffer index
int TxTail = 0;

unsigned char _getchar(); 
void simple_transmitter1(int context);
int _putchar(int in_char);

int main(void)
{
	int context = 0;
	int i = 0;
	
	nr_installuserisr(na_uart1_irq, simple_transmitter1, context);  // install UART ISR (transmitter)
		
	_putchar('N');
	_putchar('i');
	_putchar('o');
	_putchar('s');
	_putchar('\n');

	nr_delay(1);
	return 0;
}

/************************************************************************/

void simple_transmitter1(int data)
{
	if (TxTail != TxHead) 
	{      
		na_uart1->np_uarttxdata =TxBuf[TxTail];	// send a byte of data
		if (++TxTail > (TXBUFSIZE -1))	// check for wrap around.
               		TxTail = 0;
	}
	else 
	{       /* tx buffer empty, disable iTRDY.  Since this ISR only deals with iTRDY 
		   and iRRDY, we will accomplish this by enabling just iRRDY. */
		na_uart1->np_uartcontrol = np_uartcontrol_irrdy_mask;			
	}
}// end of transmitter

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -