/************************************************
Testa a porta serial UART0 com interrupcao
Sistemas Embarcados 2010/2
Marcos Augusto Stemmer
*************************************************/
#include <arch/nxp/lpc24xx.h>
#include "vic_cpsr.h"
#include "uart.h"

int main (void)
{
int c=0;
T0TCR = 0;	/* Desabilita T0 */
T0PR = SYSCLK/100 - 1;	/* Incrementa o contador T0TC 100 vezes por segundo */
T0TCR = 2;	/* Inicializa T0 */
T0TCR = 1;	/* Habilita T0  */
U0init(BAUDRATE);
U0puts("\r\nTeste da porta UART0\r\n");
#ifdef DEBUG
FIO4DIR |= 0x7f8000;	/* LEDs como saidas */
FIO4SET = 0x7f8000;
#endif
do	{
/* A seguir uma espera de 2 segundos para mostrar o efeito 
  da interrupcao na porta serial */
	T0TC = 0;
	while(T0TC < 200);
/* Le e transmite todos os char's armazenados na fila */
	while(U0tem()){	/* Ve se tem char na fila rx */
		c=U0getchar();	/* Pega char da fila */
		/* Se for Ctrl-B escreve uma mensagem */
		if(c==2) U0puts("\r\nLinha de texto completa\r\n");
		U0putchar(c);	/* Escreve o caractere */
		}
	} while(c!=1);	/* Ctrl-A sai */
return 0;
}

/* Estas rotinas sao chamados pelo crt.S. 
Devem existir, mas ainda nao estao sendo usadas */
void UNDEF_Routine(){}
void SWI_Routine(){}
void FIQ_Routine(){}
