예제 #1
0
파일: common.c 프로젝트: cpantel/ciaa
/*==================[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");
}
예제 #2
0
파일: main.c 프로젝트: elsuizo/sAPI
/* 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");
}
예제 #3
0
/*
 * 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));		
	}
}
예제 #4
0
파일: main.c 프로젝트: elsuizo/sAPI
/* 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 ;
}
예제 #5
0
void sendResponse(uint8_t *data)
{
  uartWriteByte(0x0D);
  uartWriteString(data);
  uartWriteByte(0x0A);
}