Exemplo n.º 1
0
int main(void) {
	InicializarKit();
	
	 while(1)
	 {
		 Check_tecla();
	 }
	 return 0 ;
}
Exemplo n.º 2
0
int main(void) {
	


	InicializarKit ();						// Inicialización del Kit
	uint32_t delay;
	uint8_t lectura,cantlecturas=0;
	flag_flash=OFF;




	for(delay=0;delay<0x00ffffff;delay++); //delay de aprox 2 segs para dejar arrancar el DHT

	//Carga el primer elemento para empezar a mostrar algo
	Mensajes[0].arrayID[PROTOCOL_ID]= 1;
	strcpy(Mensajes[0].str,"J&J Fest!!!");
	Mensajes[0].vel = 8;
	Mensajes[0].Tipo_Elem=ELEMENTO_TEXTO;

	//busca mensaje para cargar el buffer
	get_message();


	InicTimer0();
	InicTimer1();
	InicTimer2(); //inicio base de tiempo de maquina para dht

	CambiarEstadoTE(TRANSMISION);

	while(1)
	{

		if(flash==OFF){

			if(flagLeerMensajeNuevo){
				ApagoTimers();//apago timers para no molestar en lectura de DHT
				lectura=DHT_Mde();

				if(!flagLeerMensajeNuevo){ //Entra una vez terminada la lectura del DHT
					get_message();
					ArrancoTimers();//vuelvo a encender timers con el buffer lleno
					cantlecturas++;
				}

				if(cantlecturas == 3 && actualizandodatos){ //cada 3 lecturas le actualizo datos a esclavos
					ActualizarDatos();
					cantlecturas=0;
				}
				else if(!actualizandodatos){
					cantlecturas=0;	//en caso de que se este transmitiendo informacion por el bus485, no se transmiten las actualizaciones
				}
			}
		}
		else if(flash==ON){

			if(flag_flash==OFF){
				apagarmatriz();

			}
			else if(flag_flash==ON){
				prendermatriz();


			}

		}



		if(iniciar485 && VencioTimer485){
			EnviarInicioTx();
			iniciar485=0;//para no volver a entrar
			EventosM=0;
		}




		//si se agoto el timer y se tiene que enviar el prox paquete, y el indice actual es menor al total
		//de paquetes (profilactico) y no se debe enviar fin de tx todavia
		if(VencioTimer485 && enviando485 && indice<Leng && !findeenvio){
			EnviarPaquete();
			enviando485=0;//para no volver a entrar
			EventosM=0;

		}

		//si se agoto el timer y se debe enviar el fin
		if(VencioTimer485 && findeenvio){

			EnviarFinTX();
			findeenvio=0;//para no volver a entrar
			EventosM=0;

		}


		if(VencioTimer485 && !enviando485 && !findeenvio && !iniciar485){
			CambiarEstadoTE(RECEPCION);	//paso a recepcion para esperar ack
			EventosM=0; //para no volver a entrar
			enviarfindetx=0;
		}


		if(VencioTimeOUT485){
			id485++;
			if(id485<=CANTESCLAVAS){
				iniciar485=1; //para arrancar nueva tx
				indice=0; //para q empiece desde el ppio
			}
			else{
				id485=1; //para preparar proxima tx
				CambiarEstadoTE(TRANSMISION);
				actualizandodatos=1;	//se activa de nuevo el bloque de envio de datos
			}
			EventosM=0; //para apagar timers
		}




	}



	return 0 ;

}