/* * Handles the Uart protocol. */ void checkUart() { //checks if ready to read if (uartReadyToRead()) { //1. read cyclicBufferPut(&gReadBuffer,uartReadByte()); //2. if got 4 bytes, process if (gReadBuffer.size == PROTOCOL_MSG_SIZE) { handleProtocolMessage(); } } //checks if ready to write if (gWriteBuffer.size > 0 && uartReadyToWrite()) { uartWriteByte(cyclicBufferGet(&gWriteBuffer)); } }
/* FUNCION PRINCIPAL, PUNTO DE ENTRADA AL PROGRAMA LUEGO DE RESET. */ int main(void){ /* ------------- INICIALIZACIONES ------------- */ /* Inicializar la placa */ boardConfig(); /* Inicializar el conteo de Ticks con resolución de 1ms, sin tickHook */ tickConfig( 1, 0 ); /* Inicializar DigitalIO */ digitalConfig( 0, ENABLE_DIGITAL_IO ); /* Configuración de pines de entrada para Teclas de la CIAA-NXP */ digitalConfig( TEC1, INPUT ); digitalConfig( TEC2, INPUT ); digitalConfig( TEC3, INPUT ); digitalConfig( TEC4, INPUT ); /* Configuración de pines de salida para Leds de la CIAA-NXP */ digitalConfig( LEDR, OUTPUT ); digitalConfig( LEDG, OUTPUT ); digitalConfig( LEDB, OUTPUT ); digitalConfig( LED1, OUTPUT ); digitalConfig( LED2, OUTPUT ); digitalConfig( LED3, OUTPUT ); /* Inicializar UART_USB a 115200 baudios */ uartConfig( UART_USB, 115200 ); uint8_t dato = 0; uint8_t dato1 = 1; uint8_t dato2 = 78; int32_t dato3 = 1234; /* Buffer */ static uint8_t uartBuff[10]; uartWriteByte( UART_USB, 'h' - 32 ); /* Envía 'H' */ uartWriteByte( UART_USB, 'A' + 32 ); /* Envía 'a' */ /* Enviar un Enter */ uartWriteByte( UART_USB, '\r' ); /* Envía '\r', retorno de carro */ uartWriteByte( UART_USB, '\n' ); /* Envía '\n', nueva línea */ uartWriteByte( UART_USB, dato1 + 48 ); /* Envía '1' */ uartWriteByte( UART_USB, ' ' ); /* Envía ' ' */ uartWriteByte( UART_USB, '1' ); /* Envía '1' */ uartWriteByte( UART_USB, 32 ); /* Envía ' ' */ /* Convertir un número entero de 2 dígitos ASCII y enviar */ uartWriteByte( UART_USB, (dato2/10) + 48 ); /* Envía '7' */ uartWriteByte( UART_USB, (dato2%10) + 48 ); /* Envía '8' */ uartWriteString( UART_USB, "\r\n" ); /* Enviar un Enter */ uartWriteByte( UART_USB, 'H' ); /* Envía 'H' */ uartWriteByte( UART_USB, 'o' ); /* Envía 'o' */ uartWriteByte( UART_USB, 'l' ); /* Envía 'l' */ uartWriteByte( UART_USB, 'a' ); /* Envía 'a' */ uartWriteByte( UART_USB, '\r' ); /* Envía '\r', retorno de carro */ uartWriteByte( UART_USB, '\n' ); /* Envía '\n', nueva línea */ uartWriteString( UART_USB, "Chau\r\n" ); /* Envía "Chau\r\n" */ uint8_t miTexto[] = "Hola de nuevo\r\n"; uartWriteString( UART_USB, miTexto ); /* Envía "Hola de nuevo\r\n" */ miTexto[0] = 'h'; uartWriteString( UART_USB, miTexto ); /* Envía "hola de nuevo\r\n" */ /* Conversión de muestra entera a ascii con base decimal usando itoa() */ itoa( dato3, uartBuff, 10 ); /* base 10 significa decimal */ uartWriteString( UART_USB, uartBuff ); uartWriteString( UART_USB, "\r\n" ); /* Enviar un Enter */ /* ------------- REPETIR POR SIEMPRE ------------- */ while(1) { /* Recibir byte de la UART_USB y guardarlo en la variable dato */ dato = uartReadByte( UART_USB ); /* Si el byte recibido es distinto de 0 (caracter NULL) se reenvía a la UART_USB realizando un eco de lo que llega */ if( dato ){ uartWriteByte( UART_USB, dato ); } } /* NO DEBE LLEGAR NUNCA AQUI, debido a que a este programa no es llamado por ningun S.O. */ return 0 ; }