📄 simple_tx_isr.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 + -