/*==================[definiciones de funciones externas]=====================*/ void printError(void) { static uint8_t OSErrorGetServiceIdTxt[][25]={ "Undefined", "ActivateTask", "TerminateTask", "ChainTask", "Schedule", "GetTAskID", "GetTaskState", "DisableAllInterrupts", "EnableAllInterrupts", "SuspendAllInterrupts", "ResumeAllInterrupts", "SuspendOSInterrupts", "ResumeOSInterrupts", "GetResource", "ReleaseResource", "SetEvent", "ClearEvent", "GetEvent", "WaitEvent", "GetAlarmBase", "GetAlarm", "SetRelAlarm", "SetAbsAlarm", "CancelAlarm", "GetACtiveApplicationMode", "StartOS", "ShutdownOS" }; static uint8_t OSErrorGetRetTxt[][13]={ "E_OK", "E_OS_ACCESS", "E_OS_CALLEVEL", "E_OS_ID" "E_OS_LIMIT", "E_OS_NOFUNC", "E_OS_RESOURCE", "E_OS_STATE", "E_OS_VALUE" }; uartWriteString(UART_USB, "\n-----------------------------------\n"); uartWriteString(UART_USB, "Service:\n"); uartWriteByte(UART_USB, ( OSErrorGetServiceId() + 48 ) ); uartWriteString(UART_USB, " = "); uartWriteString(UART_USB, ( OSErrorGetServiceIdTxt[OSErrorGetServiceId()]) ); uartWriteString(UART_USB, " ---> "); uartWriteByte(UART_USB, ( OSErrorGetRet() + 48 ) ); uartWriteString(UART_USB, " = "); uartWriteString(UART_USB, ( OSErrorGetRetTxt[OSErrorGetRet()] ) ); uartWriteString(UART_USB, "\n-----------------------------------\n"); }
/* Enviar fecha y hora en formato "DD/MM/YYYY, HH:MM:SS" */ void showDateAndTime( RTC_t * rtc ){ /* Conversion de entero a ascii con base decimal */ itoa( (int) (rtc->mday), (char*)uartBuff, 10 ); /* 10 significa decimal */ /* Envio el dia */ if( (rtc->mday)<10 ) uartWriteByte( UART_USB, '0' ); uartWriteString( UART_USB, uartBuff ); uartWriteByte( UART_USB, '/' ); /* Conversion de entero a ascii con base decimal */ itoa( (int) (rtc->month), (char*)uartBuff, 10 ); /* 10 significa decimal */ /* Envio el mes */ if( (rtc->month)<10 ) uartWriteByte( UART_USB, '0' ); uartWriteString( UART_USB, uartBuff ); uartWriteByte( UART_USB, '/' ); /* Conversion de entero a ascii con base decimal */ itoa( (int) (rtc->year), (char*)uartBuff, 10 ); /* 10 significa decimal */ /* Envio el año */ if( (rtc->year)<10 ) uartWriteByte( UART_USB, '0' ); uartWriteString( UART_USB, uartBuff ); uartWriteString( UART_USB, (uint8_t*) ", "); /* Conversion de entero a ascii con base decimal */ itoa( (int) (rtc->hour), (char*)uartBuff, 10 ); /* 10 significa decimal */ /* Envio la hora */ if( (rtc->hour)<10 ) uartWriteByte( UART_USB, '0' ); uartWriteString( UART_USB, uartBuff ); uartWriteByte( UART_USB, ':' ); /* Conversion de entero a ascii con base decimal */ itoa( (int) (rtc->min), (char*)uartBuff, 10 ); /* 10 significa decimal */ /* Envio los minutos */ // uartBuff[2] = 0; /* NULL */ if( (rtc->min)<10 ) uartWriteByte( UART_USB, '0' ); uartWriteString( UART_USB, uartBuff ); uartWriteByte( UART_USB, ':' ); /* Conversion de entero a ascii con base decimal */ itoa( (int) (rtc->sec), (char*)uartBuff, 10 ); /* 10 significa decimal */ /* Envio los segundos */ if( (rtc->sec)<10 ) uartWriteByte( UART_USB, '0' ); uartWriteString( UART_USB, uartBuff ); /* Envio un 'enter' */ uartWriteString( UART_USB, (uint8_t*) "\r\n"); }
/* * 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 ; }
void sendResponse(uint8_t *data) { uartWriteByte(0x0D); uartWriteString(data); uartWriteByte(0x0A); }