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