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

📄 ui.c

📁 dm270 source code
💻 C
字号:
/*
    DM270 ARM Evaluation Software

    (c)Texas Instruments 2003
*/

#include <system/uart270.h>
#include <user/intc.h>
#include <user/ui.h>
#include <user/fifo.h>

FIFO	InputFifo0;
FIFO	InputFifo1;

char UART_outBuff[1024];
char UART_inBuff[64];

#define RECV_DATA_VALID		(1<<12)

volatile unsigned short	UART0IntFlag = 1;
volatile unsigned short	UART1IntFlag = 1;
unsigned char Ctrl_FIFO1 = 0; // Init 1, read key 2, 

void SWITCH_TEST1(void);

void UART_isr0() {
	Uint16 recv0 = UART0_RGET( DTRR0 );

	if(recv0 & RECV_DATA_VALID ) {
		FIFO_put( &InputFifo0, (Uint8)recv0);
	}
	UART0IntFlag = 0;
}

void UART_isr1() {
	Uint16 recv1 = UART1_RGET( DTRR1 );

	if(recv1 & RECV_DATA_VALID ) {
		if((Ctrl_FIFO1 == 1) || (Ctrl_FIFO1 == 2)) {
			FIFO_put( &InputFifo1, (Uint8)recv1);
			if(Ctrl_FIFO1 == 2)
				SWITCH_TEST1();
		}
	}
	UART1IntFlag = 0;
}

void SWITCH_TEST1(void) {
	char ch;
	
	while(FIFO_get(&InputFifo1, &ch) != E_PASS)
		;
	sprintf( UART_outBuff, "\r\n 0x%x", ch );
	UART_sendString( UART0,  UART_outBuff );
	UART_sendString( UART0,  "\r\n " );
	
}

STATUS UI_init() {
	{
		UART_ModeData uartMode0;
			
		INTC_enable( INT_UART0, FALSE);
	
		FIFO_init(&InputFifo0);
	
		uartMode0.rxFifoSize = 0; // 1 byte
		uartMode0.txFifoSize = 0; // 1 byte
		uartMode0.rxFifoIntEnable = TRUE;
		uartMode0.txFifoIntEnable = FALSE;
		uartMode0.rxErrorIntEnable= FALSE;
		uartMode0.timeoutIntEnable= FALSE;
		
		UART_setMode( UART0, &uartMode0);
	
		INTCAttachISR( INT_UART0, UART_isr0 );
		INTC_enable( INT_UART0, TRUE);
	}
	{
		UART_ModeData uartMode1;

		INTC_enable( INT_UART1, FALSE);
	
		FIFO_init(&InputFifo1);
				
		uartMode1.rxFifoSize = 0; // 1 byte
		uartMode1.txFifoSize = 0; // 1 byte
		uartMode1.rxFifoIntEnable = TRUE;
		uartMode1.txFifoIntEnable = FALSE;
		uartMode1.rxErrorIntEnable= FALSE;
		uartMode1.timeoutIntEnable= FALSE;
	
		UART_setMode( UART1, &uartMode1);
		
		INTCAttachISR( INT_UART1, UART_isr1 );
		INTC_enable( INT_UART1, TRUE);
	}

	return E_PASS;
}

char UI_getInput() {
	char ch;

	INTC_enable( INT_UART1, FALSE);
	FIFO_clear(&InputFifo1);
	INTC_enable( INT_UART1, TRUE);

	while(FIFO_get(&InputFifo1, &ch) != E_PASS)
		;
	UART1IntFlag = 1;

	return ch;
}

char UI_checkInput() {
	char ch;

	if( FIFO_get( &InputFifo1, &ch) != E_PASS )
		return 0;
	UART0IntFlag = 1;
	
	return ch;
}


⌨️ 快捷键说明

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