Exemple #1
0
Fichier : main.c Projet : GLL88/CAN
void select_task(){

	/*
	 * Recibo la trama
	 */
	recibir_trama();

	/*
	 * Leemos los datos de la trama
	 */
	leer_keypad();

	/*
	* Asignamos una nota según el botón que se haya pulsado
	*/
	pulsar_boton();

	/*
	 * Reproducimos la botón seleccionada
	 */
	reproducir_boton();

	 /*
	  * Escribimos y dibujamos en la pantalla
	  */
	dibujar_en_pantalla();

}
Exemple #2
0
/*
  Función principal
*/
void main()
{
	unsigned char direc_mensaje;
	unsigned char TIMEOUT;
	unsigned char mensaje;
	unsigned char ERROR;
	unsigned char DIRECCION_SUBARRAY;

	inicializar_registros();

	/* Obtenemos la dirección del subarray */
	DIRECCION_SUBARRAY = direc_subarray;

	/* bucle del programa */
	while(1)
	{
		/* Bandera que utilizamos para determinar si la interrupción
			que se produce se ha originado en el puerto serie */
		int_serie = 0;

		/* El micro entra en modo de bajo consumo mientras no se
			produzca actividad en el puerto serie */
		while(int_serie == 0)
			bajo_consumo();

		/* Se ha detectado actividad en el bus de telecomandos. Capturamos la trama */
		TIMEOUT = recibir_trama();

		/* Si no se ha excedido el tiempo límite se procede a identificar el mensaje recibido */
		if (TIMEOUT == FALSE)
		{
			mensaje       = obtener_tipo_mensaje;
			direc_mensaje = obtener_direc_mensaje;

			if (direc_mensaje == DIRECCION_SUBARRAY)
				ERROR = contestar_si_error();

			/* Si no ha habido error en la recepción se procesa el telecomando */
			if (ERROR == FALSE)
			{
				switch(mensaje)
				{
					case CONFORMACION    :  telec_conformacion(DIRECCION_SUBARRAY);

                                                                break;

					case ACTUALIZACION   :  if (direc_mensaje == DIRECCION_SUBARRAY)
                                                                    telec_actualizacion();

                                                                break;

					case TEMPERATURA     :  if (direc_mensaje == DIRECCION_SUBARRAY)
                                                                    telec_temperatura();

                                                                break;

					case PETICION_ESTADO :  if (direc_mensaje == DIRECCION_SUBARRAY)
                                                                    telec_pet_Estado();

                                                                break;
				}
			}
		}
	}
	
}