int main() { char seguir='s'; int opcion; EPersonas listaPersona[TAM]; cambiarEstado(listaPersonas,TAM); do { opcion = mostrarMenu("1- Agregar persona\n2- Borrar persona\n3- Imprimir lista ordenada por nombre\n4- Imprimir grafico de edades\n5- Salir"); switch(opcion) { case 1: AgregarPersona(listaPersona,TAM); break; case 2: BorrarPersonas(listaPersona,TAM); break; case 3: ListaOrdenada(listaPersona,TAM); break; case 4: break; case 5: seguir = 'n'; break; } } while(seguir=='s'); return 0; }
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); }
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); }
void inputBTChar(int *estado, char input, UART *consolaBT) { int temp = 0; if (input == 's') banderaShowMenu = 0; switch (*estado) { case MAINMENU: if (input == '1') *estado = cambiarEstado(ANDANDO); if (input == '2') *estado = cambiarEstado(ESTACIONADO); if (input == '3') *estado = cambiarEstado(CONFIGMENU); if (input == '4') *estado = cambiarEstado(VERVALORES); break; case ANDANDO: if (input == 'm') *estado = cambiarEstado(MAINMENU); break; case CONFIGMENU: if (input == '1') *estado = cambiarEstado(RODADO); if (input == '2') *estado = cambiarEstado(VELOCIDADMAX); if (input == '3') *estado = cambiarEstado(INCLINACIONMAX); if (input == '4') *estado = cambiarEstado(PULSACIONESMAX); if (input == '5') *estado = cambiarEstado(MAINMENU); if (input == 'm') *estado = cambiarEstado(MAINMENU); break; case ESTACIONADO: if (input == 'm') { *estado = cambiarEstado(MAINMENU); swAlarmaSeguridadON = 0; } break; case RODADO: if (input == 'm') *estado = cambiarEstado(CONFIGMENU); if (addDatoBuffer(input, consolaBT, (char *) &rodado[0])) { iBuffer = 0; *estado = cambiarEstado(VERVALORES); temp = atoi((char *) &rodado[0]); ponerEnColaEventos(EVENT_HI_MENU_SET_RODADO,atoi((char *) &rodado[0])); } break; case VELOCIDADMAX: if (input == 'm') *estado = cambiarEstado(CONFIGMENU); if (addDatoBuffer(input, consolaBT, (char *) &velocidadMaxima[0])) { iBuffer = 0; *estado = cambiarEstado(VERVALORES); temp = atoi((char *) &velocidadMaxima[0]); ponerEnColaEventos(EVENT_HI_MENU_SET_VELOCIDAD_MAX,atoi((char *) &velocidadMaxima[0])); } break; case INCLINACIONMAX: if (input == 'm') *estado = cambiarEstado(CONFIGMENU); if (addDatoBuffer(input, consolaBT, (char *) &inclinacionMaxima[0])) { iBuffer = 0; *estado = cambiarEstado(VERVALORES); temp = atoi((char *) &inclinacionMaxima[0]); ponerEnColaEventos(EVENT_HI_MENU_SET_INCLINACION_MAX,atoi((char *) &inclinacionMaxima[0])); } break; case PULSACIONESMAX: if (input == 'm') *estado = cambiarEstado(CONFIGMENU); if (addDatoBuffer(input, consolaBT, (char *) &pulsacionesMaxima[0])) { iBuffer = 0; *estado = cambiarEstado(VERVALORES); temp = atoi((char *) &pulsacionesMaxima[0]); ponerEnColaEventos(EVENT_HI_MENU_SET_PULSACIONES_MAX,atoi((char *) &pulsacionesMaxima[0])); } break; case VERVALORES: if (input == 'm') *estado = cambiarEstado(CONFIGMENU); break; } }