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;
}
示例#2
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);

}
示例#3
0
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);


}
示例#4
0
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;
	}
}