buiz escreveu:Ok, estou programando em C, meu programa se baseia em uma central que recebe informações de 10 pontos diferentes, ou seja 1 mestre e 10 escravos.
Então na realidade são 02 firmwares que estou desenvolvendo, o do mestre e dos escravos.
O mestre chama o escravo e aguarda ele responder, se o escravo não responder ele passa para o proximo.
Vou dar uma analizada nas resposta e ver se acho alguma solução, qualquer coisa eu posto aqui.
Veleu!
Buiz,
O RobL já disse tudo...O tratamento da sua serial deve ser feito através de interrupção para evitar esse problema que vc está tendo. Com relação ao tmr out de comunicação com os escravos, existe várias maneiras de se resolver isso, uma delas é vc colocar um cont para ser incrementado na sua interrupção de tmr, daí a cada transmissão sua vc zera ele e depois vc fica no seu loop normal, caso vc receba alguma coisa, blz vc desconsidera ele, caso não, vc fica no loop sempre olhando ele, daí quando chegar na sua contagem limite, significa que o escravo não respondeu, daí vc pula para o processo escravo. Como disse, existem diversas maneiras de se fazer isso, essa não é a melhor forma do ponto de vista de desempenho, mas foi só para te dar uma idéia.
Até +...
Paulo D.
"Se o teu sonho for maior que ti, Alonga tuas asas, Esgarça os teus medos, Amplia o teu mundo, Dimensiona o infinito, E parte em busca da estrela... " (Trecho de Voa - Ivan Lins / Leda Selma)