/** \brief Main function * * This is the main entry point of the software. * * \returns 0 * * \remarks This function never returns. Return value is only to avoid compiler * warnings or errors. */ int main(void) { InitLed(); InitTeclas(); uint32_t i; edu_ciaa_ledRGB RGB; edu_ciaa_key mi_key; apagarLed(rojo); apagarLed(amarillo); apagarLed(verde); RGB.LEDrojo=ENCENDIDO; RGB.LEDverde=ENCENDIDO; RGB.LEDazul=ENCENDIDO; /* perform the needed initialization here */ while(1) { leerTeclas(& mi_key); for (i=PERIODO; i!=0; i--) { asm ("nop"); } if(mi_key.Tecla_1==PULSADO) { toogleRGB(& RGB); } if(mi_key.Tecla_2==PULSADO) { toogle(rojo); } if(mi_key.Tecla_3==PULSADO) { toogle(amarillo); } if(mi_key.Tecla_4==PULSADO) { toogle(verde); } /* add your code here */ } return 0; }/*este es el del main*/
int main(void) { /* perform the needed initialization here */ uint8_t INICIOLEDS; uint8_t INICIOTECLAS; uint8_t INICIOTIMERS; uint8_t ESTADOESCANEO; //VARIABLES DE TECLAS uint8_t PRENDIDO = 1; uint8_t APAGADO = 0; uint8_t PULSADO = 0; uint8_t NO_PULSADO = 1; //Instancaimos el struc de TECLAS TECLAS_1_2_3_4 TECLAS; //Inicializamos los puertos de TECLAS INICIOTECLAS = InicializarTeclas(); //---------------------------------- //VARIABLES DEL TIMER RTI uint32_t DURACION_DEL_CICLO_COLOR=100;//Es una variable que se usa para determina cuantas cuentas del RTI dura un ciclo del color. En este caso la duración de un color es igual a 100 cuentas del RTI uint32_t TIEMPO_TIMER_RTI=1;//Tiempo en milisegundo del contador RTI uint32_t Cuenata_color=0;//Es una variable que cuenta la cantidad de ciclos que se va a mostrar un color determinado uint32_t TIEMPO_DEL_COLOR=5;//Es una variable que determina el tiempo total que va a durar un color. Se determina con la cantidad de ciclos que se va a mostrar de un color //Inicializamos los TIMERS y definimos el intervalo INICIOTIMERS = InicializarTimers(); DefinirIntervaloRTI(TIEMPO_TIMER_RTI); //---------------------------------- //VARIABLES DE LEDS //Inicializamos los puertos de LED INICIOLEDS = inicializarPuertos(); //Instancaimos el struc de LED LED_1_2_3_RGB LEDS; //VARIABLES DEL RGB //Instancaimos el struc de COLORES DE RGB COLORES_LEDRGB COLORES_RGB; GenerarColoresRGB(); //DEFINIMOS LOS INTERVALOS DE TIEMPO INICIALES QUE LO VAMOS A DEJAR PRENDIDO A CADA COLOR DEL RGB COLORES_RGB.color_ledR=DURACION_DEL_CICLO_COLOR; COLORES_RGB.color_ledG=DURACION_DEL_CICLO_COLOR; COLORES_RGB.color_ledB=DURACION_DEL_CICLO_COLOR; //---------------------------------- do {//GENERAMOS EL ARCOIRIS if(!EstadoTecla(TEC1)) { do { //Seleccionamos lo que vamos a cambiar de estado. En este caso los tres R-G-B LEDS.ledR = PRENDIDO; LEDS.ledG = PRENDIDO; LEDS.ledB = PRENDIDO; LEDS.LED_UNO = APAGADO; LEDS.LED_DOS = APAGADO; LEDS.LED_TRES = APAGADO; //CAMBIAMOS EL ESTAD cambiarEstado(&LEDS); //INICIALIZAMOS a CERO EL CONTADOR DEL TIMER SetContadorRGB(CERO); //ARRANCAMOS UN CICLO DE COLOR EL CUAL DURA UNA CANTIDAD IGUAL A DURACION_DEL_CICLO_COLOR. EN ESTE CASO SE DEFINIO EN 100 mseg //Obtenemos el valor del contador uint32_t tiempoPrendido = GetContadorRGB(); do { tiempoPrendido = GetContadorRGB(); if(COLORES_RGB.color_ledR <= tiempoPrendido) { apagarLed(LEDR); } if(COLORES_RGB.color_ledG <= tiempoPrendido) { apagarLed(LEDG); } if(COLORES_RGB.color_ledB <= tiempoPrendido) { apagarLed(LEDB); } } while(tiempoPrendido<=DURACION_DEL_CICLO_COLOR); //LUEGO DE CUMPLIDO UN CICLO DE VISUALIZACIÓN DE UN COLOR //Aumentamos el contador de ciclos Cuenata_color++; }while(TIEMPO_DEL_COLOR>=Cuenata_color); //INICIALIZAMOS A CERO EL CONTADOR DE COLOR Cuenata_color=CERO; //CAMBIAMOS EL COLOR, MEDIANTE EL CAMBIO DE LA DURACIÓN DE LOS RGB CambiarColorRGB(&COLORES_RGB,DURACION_DEL_CICLO_COLOR); } else { //Seleccionamos el que vamos a cambiar de estado. PRIMERO EL LED1 LEDS.ledR = APAGADO; LEDS.ledG = APAGADO; LEDS.ledB = APAGADO; LEDS.LED_UNO = PRENDIDO; LEDS.LED_DOS = APAGADO; LEDS.LED_TRES = APAGADO; //CAMBIAMOS EL LED1 cambiarEstado(&LEDS ); //Esperamos un intervalo SetContadorRGB(CERO); uint32_t INTERVALO=250;//Definimos un intervalo de 250 milisegundos entre el ensendido de cada color uint32_t tiempoDeEspera = CERO; do { tiempoDeEspera= GetContadorRGB(); } while(tiempoDeEspera<INTERVALO); //Apagamos el LED1 apagarLed(LED1); //Seleccionamos el SIGUEINTE, EL LED2 LEDS.ledR = APAGADO; LEDS.ledG = APAGADO; LEDS.ledB = APAGADO; LEDS.LED_UNO = APAGADO; LEDS.LED_DOS = PRENDIDO; LEDS.LED_TRES = APAGADO; //CAMBIAMOS EL LED2 cambiarEstado(&LEDS ); //Esperamos otro intervalo de 250 ms SetContadorRGB(CERO); do { tiempoDeEspera= GetContadorRGB(); } while(tiempoDeEspera<INTERVALO); //Apagamos el LED2 apagarLed(LED2); } }while(1); }
/** \brief Main function * * This is the main entry point of the software. * * \returns 0 * * \remarks This function never returns. Return value is only to avoid compiler * warnings or errors. */ int main(void) { uint32_t i; edu_ciaa_ledRGB RGB; InitLed(); prenderLed(rojo); apagarLed(rojo); apagarLed(amarillo); apagarLed(verde); apagarRGB(& RGB); /* perform the needed initialization here */ while(1) { toogle(amarillo); RGB.LEDrojo=ENCENDIDO; RGB.LEDverde=APAGADO; RGB.LEDazul=APAGADO; for (i=PERIODO; i!=0; i--) { asm ("nop"); } toogleRGB(& RGB); RGB.LEDrojo=APAGADO; RGB.LEDverde=ENCENDIDO; RGB.LEDazul=APAGADO; for (i=PERIODO; i!=0; i--) { asm ("nop"); } toogleRGB(& RGB); RGB.LEDrojo=APAGADO; RGB.LEDverde=APAGADO; RGB.LEDazul=ENCENDIDO; for (i=PERIODO; i!=0; i--) { asm ("nop"); } toogleRGB(& RGB); } return 0; }/*este es el del mail*/
int main(void) { /* perform the needed initialization here */ uint8_t INICIO; uint8_t PRENDIDO = 1; uint8_t APAGADO = 0; uint8_t CAMBIO_DE_ESTADO = 0; uint32_t i; uint32_t INTERVALO=500000; //Intancaimos e inicializamos el struc LED_1_2_3_RGB LEDS; //Inicializamos los puertos INICIO = inicializarPuertos(); //ARRANCAMOS UN CICLO INFINITO do { //Seleccionamos el que vamos a cambiar de estado. PRIMERO EL LED1 LEDS.ledR = APAGADO; LEDS.ledG = APAGADO; LEDS.ledB = APAGADO; LEDS.LED_UNO = PRENDIDO; LEDS.LED_DOS = APAGADO; LEDS.LED_TRES = APAGADO; //CAMBIAMOS EL LED1 CAMBIO_DE_ESTADO = cambiarEstado(&LEDS ); //Esperamos un intervalo for(i=INTERVALO ;i!=0;i--) { asm("nop"); }; //Apagamos el LED1 apagarLed(LED1); //Seleccionamos el SIGUEINTE, EL LED2 LEDS.ledR = APAGADO; LEDS.ledG = APAGADO; LEDS.ledB = APAGADO; LEDS.LED_UNO = APAGADO; LEDS.LED_DOS = PRENDIDO; LEDS.LED_TRES = APAGADO; //CAMBIAMOS EL LED2 CAMBIO_DE_ESTADO = cambiarEstado(&LEDS ); //Esperamos un intervalo for(i=INTERVALO ;i!=0;i--) { asm("nop"); }; //Apagamos el LED2 apagarLed(LED2); //Seleccionamos el SIGUEINTE, EL LED3 LEDS.ledR = APAGADO; LEDS.ledG = APAGADO; LEDS.ledB = APAGADO; LEDS.LED_UNO = APAGADO; LEDS.LED_DOS = APAGADO; LEDS.LED_TRES = PRENDIDO; //CAMBIAMOS EL LED3 CAMBIO_DE_ESTADO = cambiarEstado(&LEDS ); //Esperamos un intervalo for(i=INTERVALO ;i!=0;i--) { asm("nop"); }; //Apagamos el LED3 apagarLed(LED3); //Seleccionamos el SIGUEINTE, EL LEDG LEDS.ledR = APAGADO; LEDS.ledG = PRENDIDO; LEDS.ledB = APAGADO; LEDS.LED_UNO = APAGADO; LEDS.LED_DOS = APAGADO; LEDS.LED_TRES = APAGADO; //CAMBIAMOS EL LEDG CAMBIO_DE_ESTADO = cambiarEstado(&LEDS ); //Esperamos un intervalo for(i=INTERVALO ;i!=0;i--) { asm("nop"); }; //Apagamos el LEDG apagarLed(LEDG); //Seleccionamos el SIGUEINTE, EL LEDR LEDS.ledR = PRENDIDO; LEDS.ledG = APAGADO; LEDS.ledB = APAGADO; LEDS.LED_UNO = APAGADO; LEDS.LED_DOS = APAGADO; LEDS.LED_TRES = APAGADO; //CAMBIAMOS EL LEDR CAMBIO_DE_ESTADO = cambiarEstado(&LEDS ); //Esperamos un intervalo for(i=INTERVALO ;i!=0;i--) { asm("nop"); }; //Apagamos el LEDR apagarLed(LEDR); //Seleccionamos el SIGUEINTE, EL LEDB LEDS.ledR = APAGADO; LEDS.ledG = APAGADO; LEDS.ledB = PRENDIDO; LEDS.LED_UNO = APAGADO; LEDS.LED_DOS = APAGADO; LEDS.LED_TRES = APAGADO; //CAMBIAMOS EL LEDB CAMBIO_DE_ESTADO = cambiarEstado(&LEDS ); //Esperamos un intervalo for(i=INTERVALO ;i!=0;i--) { asm("nop"); }; //Apagamos el LEDG apagarLed(LEDB); } while(1); }