RS485 trancando a operação do programa!

Software e Hardware para uC PIC

Moderadores: andre_luis, 51, guest2003, Renie

RS485 trancando a operação do programa!

Mensagempor buiz » 13 Nov 2008 15:06

Olá amigos,

Seguinte, estou na metade do desenvolvimento de um equipamento e me deparei com o seguinte problema:

Tenho alguns menus num display LCD que são alterados por 02 teclas na rotina principal do meu programa, e no TIMER01 tenho uma comunicação RS485 em constante operação.

O problema é que a comunicação esta trancando os menus e dando Bugs na mostragem do display, enquanto não chega dado na porta serial não consigo mudar de menu, assim que chega tudo volta a funcionar.

Ja desabilitei a comunicação e tudo funciona perfeitamente.

Teria alguma solução para isso, se é que alguem entendeu o que esta acontecendo pois é meio dificil de explicar.

Um abraço, Buiz.
Avatar do usuário
buiz
Byte
 
Mensagens: 165
Registrado em: 20 Out 2006 14:59
Localização: Cachoeira do Sul - RS

Mensagempor Sergio38br » 13 Nov 2008 15:25

boas, vc esta programando em que linguagem? qual é o periodo de interrupção de teu timer?

{ ]'s
Sergio
Avatar do usuário
Sergio38br
Word
 
Mensagens: 759
Registrado em: 22 Nov 2007 13:39
Localização: São Paulo - SP

Mensagempor RobL » 13 Nov 2008 16:22

Você está com um problema de distribuição de tarefas.
Alguém está ocupando muito tempo. Esta rotina deve ser dividida a fim de atender as demais.
Procure usar flags (pequenas rotinas )para atender interrupções, e numa rotina principal, já fora da interrupção, verifique esses flags.
Sua comunicação não precisa ficar esperando dados chegar, isto deveria ser feito por interrupção.
Dei alguns palpites, pois não tenho a menor idéia do seu programa.
RobL
Dword
 
Mensagens: 1546
Registrado em: 20 Fev 2007 17:56

Mensagempor buiz » 14 Nov 2008 07:08

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!
Avatar do usuário
buiz
Byte
 
Mensagens: 165
Registrado em: 20 Out 2006 14:59
Localização: Cachoeira do Sul - RS

Mensagempor Paulo » 14 Nov 2008 07:40

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)
Avatar do usuário
Paulo
Byte
 
Mensagens: 421
Registrado em: 07 Nov 2006 07:26

Mensagempor buiz » 14 Nov 2008 17:27

Ok,

Valeu a todos pelas dicas, vou dar uma olhada com mais calma e ver se acho a solução.

Um abraço e um ótimo final de semana a todos!
Avatar do usuário
buiz
Byte
 
Mensagens: 165
Registrado em: 20 Out 2006 14:59
Localização: Cachoeira do Sul - RS


Voltar para PIC

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante

x