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