Olá a todos.
Estou tendo um problema com o módulo CCP e Timer0 num 16F877. Eu estou achando isso estranho e gostaria de ajuda para exclarecer o que esta acontecendo.
O CCP1 esta configurado no modo de captura, o Timer1 com prescaler de 1:8 e o clock é de 4MHz (cristal).
Uso a interrupção do CCP1 para obter o valor do periodo.
Também habilitei a interrupção do timer0 e quando ela ocorre eu preciso alterar o valor dele para 130.
Quando deixo a linha: set_timer0(130); da o maior pau com o módulo CCP1.
Se eu tirar a linha, tudo ok.
Depois de algum tempo pensando, resolvi analisar o bit CCP1IF e vi que após a linha set_timer0(130); ele estava setado. Limpando este bit antes de sair da interrupção do Timer0 tudo voltou ao normal, aparentemente.
Alguem conseguiria me explicar o porque isso está ocorrendo?
Uso o CCS e estou simulando no Proteus 6.7.
Obrigado, abraço.