hola esta es la rutina de recepcion de datos desde la pc.
como veran todos los esclavos recepcionan los datos en la rutina de recepcion de datos en sendas variables, despues en el bucle principal evaluo si acepto o no los datos recepcionados.
yo envio varios datos, desde una aplicacion, como todos los esclavos recepcionan los datos es en ese momento, cuando estan recepcionando los datos donde se nota el parpadeo de un led.
todo esto en una red rs485, como veran mi protocolo de comunicaciones es medio anticuado, si ustedes conocen alguna forma mejor por favor, con gusto y un agradecimiento
//rutina de recepcion de datos
#int_rda
void serial_isr()
{
char string_modo[20];
if(kbhit())
{
fgets(string_modo,pc);
//el primer datos nos dice que accion va a ejecutar el esclavo
//en este caso si string_modo nos dice que se va a recepcionar datos para actualizar la hora del esclavo, entonces ejecuta
//la siguiente condicion
if(strcmp(string_modo,fecha_rgb)==0)
{
fgets(string_dia,pc);
fgets(string_mes,pc);
fgets(string_anio,pc);
fgets(string_hora,pc);
fgets(string_minuto,pc);
fgets(string_segundo,pc);
flag_fecha=true;
}
//esta es la siguiente opcion, que recepcion el la fecha de encendido y apagado
else if(strcmp(string_modo,programacion_rgb)==0)
{
//primera hora
fgets(hora_on_1,pc);
fgets(minuto_on_1,pc);
fgets(segundo_on_1,pc);
fgets(hora_off_1,pc);
fgets(minuto_off_1,pc);
fgets(segundo_off_1,pc);
//segunda hora
fgets(hora_on_2,pc);
fgets(minuto_on_2,pc);
fgets(segundo_on_2,pc);
fgets(hora_off_2,pc);
fgets(minuto_off_2,pc);
fgets(segundo_off_2,pc);
flag_arranque=true;
}
//esta es otra opcion que ejecuta un procedimiento determinado en el esclavo
else if(strcmp(string_modo,juego)==0)
{
flag_game=true;
}
}
}