コード例 #1
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));		
	}
}
コード例 #2
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 ;
}