Página 1 de 1

Interrupção na RS-232

MensagemEnviado: 03 Abr 2009 16:36
por sdr
To com uma dúvida, eu sei que dá pra usar 2 ou mais portas rs232 no pic , mas queria saber se essas portas (além da padrão) também tem interrupções?

MensagemEnviado: 03 Abr 2009 16:40
por Sergio38br
pode usar um pino de int externa para detectar o start

Sergio

MensagemEnviado: 03 Abr 2009 17:11
por sdr
vlw sergio, é uma boa opção, mas eu queria saber se dava pra ter uma #int_rda pra cada.

MensagemEnviado: 03 Abr 2009 22:05
por turuna
Vamos lá vou tentar lhe ajudar, baseado no pic 16, mas o 18 deve ser igual, pois são compatíveis
1-> sete os bits 7 e 6 do registrador INTCON(7=int.geral e 6= int. periféricos), esse FSR está no bank1.
2-> sete o bit 5 de PIE1(este bit libera a interrupção de recepção da serial), esse TAMBÉM ESTÁ NO BANK1.
3-> teste o bit 5 de PIR1 dentro da interrupção, pois é ele que vai lhe indicar recepção de dados na serial, não se preocupe em limpar esse bit ele é limpo automaticamente quando vc ler o valor rcebido no registro RCREG, POR ESSE MOTIVO É INDICADO LER RCREG DENTRO DA INTERRUPÇÃO. Outro detalhe importante tb é se vc for receber dados em tempo relativamente longo(mais de 10ms em 9600) entre um e outro, não será necessário utilizar a interrupção da serial basta no loop principal testar o PIR1,5, ou manter uma imagem de RCREG e comparar se houve alteração, caso afirmativo há dados recebido, outa coisa ruim da serial do pic é se vc receber dados e não ler pode travar a serial, e se isso acontecer, ai só resetando o menino.Há o ideal é enviar um byte e esperar que o pic retorne uma confirmação que leu esse dado, ai se pode iniciar uma comunicação com extrema rapidez e confiável.

Turuna :wink:

MensagemEnviado: 06 Abr 2009 15:00
por sdr
obrigado pela informação :P