Esempio n. 1
0
File: main.c Progetto: 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 );

   /* Inicializar AnalogIO */
   /* Posibles configuraciones:
    *    ENABLE_ANALOG_INPUTS,  DISABLE_ANALOG_INPUTS,
    *    ENABLE_ANALOG_OUTPUTS, DISABLE_ANALOG_OUTPUTS
    */
   analogConfig( ENABLE_ANALOG_INPUTS );  /* ADC */
   analogConfig( ENABLE_ANALOG_OUTPUTS ); /* DAC */

   /* Configuración de estado inicial del Led */
   bool_t ledState1 = OFF;

   /* Contador */
   uint32_t i = 0;

   /* Buffer */
   static uint8_t uartBuff[10];

   /* Variable para almacenar el valor leido del ADC CH1 */
   uint16_t muestra = 0;

   /* Variables de delays no bloqueantes */
   delay_t delay1;
   delay_t delay2;

   /* Inicializar Retardo no bloqueante con tiempo en ms */
   delayConfig( &delay1, 500 );
   delayConfig( &delay2, 200 );

   /* ------------- REPETIR POR SIEMPRE ------------- */
   while(1) {

      /* delayRead retorna TRUE cuando se cumple el tiempo de retardo */
      if ( delayRead( &delay1 ) ){

         /* Leo la Entrada Analogica AI0 - ADC0 CH1 */
         muestra = analogRead( AI0 );

         /* Envío la primer parte del mnesaje a la Uart */
         uartWriteString( UART_USB, (uint8_t*)"AI0 value: " );

         /* Conversión de muestra entera a ascii con base decimal */
         itoa( muestra, uartBuff, 10 ); /* 10 significa decimal */

         /* Enviar muestra y Enter */
         uartWriteString( UART_USB, uartBuff );
         uartWriteString( UART_USB, (uint8_t*)";\r\n" );

         /* Escribo la muestra en la Salida AnalogicaAO - DAC */
         analogWrite( AO, muestra );
      }

      /* delayRead retorna TRUE cuando se cumple el tiempo de retardo */
      if ( delayRead( &delay2 ) ){
         if( ledState1 )
            ledState1 = OFF;
         else
            ledState1 = ON;
         digitalWrite( LED1, ledState1 );

         /* Si pasaron 20 delays le aumento el tiempo */
         i++;
         if( i == 20 )
            delayWrite( &delay2, 1000 );
      }

   }

   /* NO DEBE LLEGAR NUNCA AQUI, debido a que a este programa no es llamado
      por ningun S.O. */
   return 0 ;
}
Esempio n. 2
0
File: main.c Progetto: cpantel/ciaa
int main(void){

   /* ------------- INICIALIZACIONES ------------- */

   boardConfig();


   gpioConfig(TEC1, GPIO_INPUT);
   gpioConfig(TEC2, GPIO_INPUT);
   gpioConfig(TEC3, GPIO_INPUT);
   gpioConfig(TEC4, GPIO_INPUT);

   gpioConfig(LED1, GPIO_OUTPUT);
   gpioConfig(LED2, GPIO_OUTPUT);
   gpioConfig(LED3, GPIO_OUTPUT);

  
   bool_t led1 = false;
   bool_t led2 = false;
   bool_t led3 = false;

   int delayTime1 = 250;
   int delayTime2 = 250;
   int delayTime3 = 250;

   delay_t delay1;
   delay_t delay2;
   delay_t delay3;

 
   delayConfig( &delay1, delayTime1 );
   delayConfig( &delay2, delayTime2 );
   delayConfig( &delay3, delayTime3 );

   while(1) {
      if (delayRead(&delay1)) {
         gpioWrite( LED1, led1 );
         led1 = ! led1;
         delayWrite(&delay1,delayTime1);
      }
      if (delayRead(&delay2)) {
         gpioWrite( LED2, led2 );
         led2 = ! led2;
         delayWrite(&delay2,delayTime2);
      }
      if (delayRead(&delay3)) {
         gpioWrite( LED3, led3 );
         led3 = ! led3;
         delayWrite(&delay3,delayTime3);
      }

      if (! gpioRead(TEC1)) {
         delayTime1 = 250;
         delayTime2 = 250;
         delayTime3 = 250;
      }
      if (! gpioRead(TEC2)) {
         delayTime1 = 250;
         delayTime2 = 500;
         delayTime3 = 750;
      }
      if (! gpioRead(TEC3)) {
         delayTime1 = 750;
         delayTime2 = 500;
         delayTime3 = 250;
      }
      if (! gpioRead(TEC4)) {
         delayTime1 = 1000;
         delayTime2 = 1000;
         delayTime3 = 1000;
      }




   }

   return 0 ;
}
Esempio n. 3
0
int main(void)
{
	   uint8_t estado = estado_R;


	   delay_t delay;


   /* ------------- INICIALIZACIONES ------------- */

   /* Inicializar la placa */
   boardConfig();

   /* Inicializar DigitalIO */
   digitalConfig( 0, INITIALIZE );

   tickConfig(1);

   /* 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 );


   delayConfig(&delay,1);

   uartConfig( UART_USB, uint32_t baudRate );



   /* ------------- REPETIR POR SIEMPRE ------------- */
	while(1) {


		if( delayRead( &delay ) ){


			switch(estado){

					case estado_R:
								digitalWrite( LED1, 1 );
								digitalWrite( LED2, 0 );
								digitalWrite( LED3, 0 );
								delayWrite( &delay, 2000 );
								estado = estado_RA;
								break;

					case estado_RA:
								digitalWrite( LED1, 1 );
								digitalWrite( LED2, 1 );
								digitalWrite( LED3, 0 );
								delayWrite( &delay, 1000 );
								estado = estado_V;
								break;

					case estado_V:
								digitalWrite( LED1, 0 );
								digitalWrite( LED2, 0 );
								digitalWrite( LED3, 1 );
								delayWrite( &delay, 3000 );
								estado = estado_A;
								break;

					case estado_A:
								digitalWrite( LED1, 0 );
								digitalWrite( LED2, 1 );
								digitalWrite( LED3, 0 );
								delayWrite( &delay, 1000 );
								estado = estado_R;
								break;
			}

		}
	}

	/* NO DEBE LLEGAR NUNCA AQUI, debido a que a este
	   programa no es llamado por ningun S.O. */
	return 0 ;
}
Esempio n. 4
0
File: main.c Progetto: 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 );
   
   /* Estructura RTC */
   RTC_t rtc;
   
   rtc.year = 2016;
   rtc.month = 7;
   rtc.mday = 3;
   rtc.wday = 1;
   rtc.hour = 13;
   rtc.min = 17;
   rtc.sec= 0;

   bool_t val = 0;
   uint8_t i = 0;

   /* Inicializar RTC */
   val = rtcConfig( &rtc );

   delay_t delay1s;
   delayConfig( &delay1s, 1000 );
   
   delay(2000);
   
   for( i=0; i<10; i++ ){
      /* Leer fecha y hora */
      val = rtcRead( &rtc );
      /* Mostrar fecha y hora en formato "DD/MM/YYYY, HH:MM:SS" */
      showDateAndTime( &rtc );
      delay(1000);
   }
   
   rtc.year = 2016;
   rtc.month = 7;
   rtc.mday = 3;
   rtc.wday = 1;
   rtc.hour = 14;
   rtc.min = 30;
   rtc.sec= 0;
   
   /* Establecer fecha y hora */
   val = rtcWrite( &rtc );

   /* ------------- REPETIR POR SIEMPRE ------------- */
   while(1) {

      if( delayRead( &delay1s ) ){
         /* Leer fecha y hora */
         val = rtcRead( &rtc );
         /* Mostrar fecha y hora en formato "DD/MM/YYYY, HH:MM:SS" */
         showDateAndTime( &rtc );
      }

   }

   /* NO DEBE LLEGAR NUNCA AQUI, debido a que a este programa no es llamado
      por ningun S.O. */
   return 0 ;
}