Página 1 de 1

Pic perde sincronismo

MensagemEnviado: 01 Nov 2012 15:34
por menegola
Porque pic perde alguns sincronismos porta out?

Alguem ja teve problema?
pic16f688
Linha amarela pino Imput.
Linha verde pino Output
Frequencia 60HZ
Oscilador interno 4MHZ


http://imageshack.us/content_round.php? ... 5PT7ZTc58s

MensagemEnviado: 01 Nov 2012 18:34
por proex
O Pic não é muito bom pra capturar pulsos muito estreitos.

Tente aumentar a largura do pulso que vai gerar a INT.

.

MensagemEnviado: 01 Nov 2012 18:54
por vtrx
Porque a culpa é do PIC?
Provavelmente é a linguagem usada,seu código etc...

MensagemEnviado: 01 Nov 2012 18:59
por RobL
O que o proex falou é importante: O pulso deve ter no mínimo 1 ou mais clocks de largura (ver manual para o tipo de sua entrada).

Não informou como o sinal de entrada está sendo lido, se interrupção ou varredura.
Se for por interrupção, mudança de estado da porta, poderia ter até certo atraso, devido a estar atendendo outra interrupção, mas não perderia o pulso.
Se for por varredura, a forma não é adequada e perderia pulsos. A frequência da varredura pode estar sem sincronismo com os pulsos de entrada. Melhor por interrupção.

MensagemEnviado: 02 Nov 2012 07:43
por proex
vtrx escreveu:Porque a culpa é do PIC?
Provavelmente é a linguagem usada,seu código etc...


Como todo bom processador, o PIC também tem seus bugs e deficiências.

Uma bem conhecida é possibilidade de falha em detectar transição de borda no portB,0.

MensagemEnviado: 02 Nov 2012 08:30
por andre_luis
Posta aqui a rotina de tratamento da interrupção pra darmos uma olhada.
Geralmente a raiz do problema está nela, pois inadvertidamente são colocadas aí rotinas de alto consumo de processamento.

MensagemEnviado: 02 Nov 2012 08:32
por vtrx
Como todo bom processador, o PIC também tem seus bugs e deficiências.

Uma bem conhecida é possibilidade de falha em detectar transição de borda no portB,0.

Pela imagem não é esse o problema.

MensagemEnviado: 02 Nov 2012 09:45
por MOR_AL
Se a onda quadrada tem 60Hz, como afirmado, então...
O pulso tem quase 1ms.
Observar que a linha verde (output) não voltou para '1' a tempo do pulso amarelo (input) provocar um '0' na linha verde.
O problema está no firmware.
MOR_AL