Ejemplo n.º 1
0
Archivo: main.c Proyecto: cpantel/ciaa
int main(void)
{
   boardConfig();

   tickConfig( 1, 0 );

   digitalConfig( 0, ENABLE_DIGITAL_IO );


   uint8_t dutyCycle = 0; /* 0 a 255 */

   analogConfig( ENABLE_ANALOG_INPUTS );

   pwmConfig( 0,     PWM_TIMERS_ENABLE );

   pwmConfig( PWM0,  PWM_OUTPUT_ENABLE );
   pwmConfig( PWM7,  PWM_OUTPUT_ENABLE );

   pwmWrite( PWM7, 0 );
   pwmWrite( PWM0, 0 );

   while(1) {
      dutyCycle = analogRead(AI1) / 4 ;
      pwmWrite( PWM7, dutyCycle );
      pwmWrite( PWM0, dutyCycle );
   }
   return 0 ;
}
Ejemplo n.º 2
0
Archivo: main.c Proyecto: elsuizo/sAPI
/* FUNCION PRINCIPAL, PUNTO DE ENTRADA AL PROGRAMA LUEGO DE RESET. */
int main(void){

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

   /* Inicializa la placa, teclas y leds. */
   boardAndIOConfig();

   /* Inicializar el conteo de Ticks con resolucion de 1ms (se ejecuta 
      periódicamente una interrupcón cada 1ms que incrementa un contador de 
      Ticks obteniendose una base de tiempos). Se agrega además un "tick hook"
      nombrado myTickHook. El tick hook es simplemente una función que se 
      ejecutará períodicamente con cada interrupción de Tick, este nombre se
      refiere a una función "enganchada" a una interrupción */
   tickConfig( 1, myTickHook );

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

      /* No se hace nada en el Super loop, simplemente se pone el sistema en 
         bajo consumo hasta que ocurra la proxima interrupcion, en este caso
         la de Tick. Comente esta duncion y note el aumento de temperatura
         del microcontrolador */
      sleepUntilNextInterrupt();

   }

   /* NO DEBE LLEGAR NUNCA AQUI, debido a que a este programa no es llamado
      por ningun S.O. */
   return 0 ;
}
Ejemplo n.º 3
0
Archivo: seos.c Proyecto: elsuizo/sAPI
/* FUNCION que inicializa la interrupcion que ejecuta
   el planificador de tareas. */
void seosInterruptInit( tick_t tickRateMs ){
   
   /* Inicializar el conteo de Ticks con resolucion de tickRateMs ms (se 
      ejecuta periódicamente una interrupcón cada tickRateMs ms que 
      incrementa un contador de Ticks obteniendose una base de tiempos).
      Se agrega además como "tick hook" a la funcion encargada de planificar 
      las tareas seosScheduleTasks(). 
      El tick hook es simplemente una función que se ejecutará períodicamente 
      con cada interrupción de Tick, este nombre se refiere a una función 
      "enganchada" a una interrupción */
   tickConfig( tickRateMs, seosScheduleTasks );

}
Ejemplo n.º 4
0
Archivo: main.c Proyecto: 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 ;
}
Ejemplo n.º 5
0
Archivo: main.c Proyecto: 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 ;
}
Ejemplo n.º 6
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 ;
}
Ejemplo n.º 7
0
Archivo: main.c Proyecto: 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 ;
}