Cursos / Eletrônica / Projeto de Sistemas Microcontrolados / Aula
Esses três processos são executados por um módulo chamado de CCP (Capture/Compare/PWM). No caso do 16F877, existem dois módulos CCP (CCP1 e CCP2) de funcionalidades idênticas. Doravante, para expressar características dos dois módulos, faremos referência a um módulo genérico CCPx.
Um módulo CCPx permite que se façam medições precisas de períodos de sinais digitais (usando sua função de capture) bem como que sejam gerados sinais de largura de pulso programável (sinais modulados por largura de pulsos ou PWM – Pulse Width Modulation).
Em essência, um CCPx nos modos capture/compare se constitui de três blocos, sendo um temporizador (que é o Timer 1), um circuito lógico de captura/comparação e um conjunto de dois registradores: o CCPRxH e o CCPRxL, utilizados para armazenar o valor em um processo de captura ou de comparação.
No modo captura, a largura de um pulso, o período de um sinal ou a sua frequência podem ser facilmente determinados após duas capturas sucessivas de subida ou de descida do sinal em análise.
No modo comparação, o valor do Timer 1 é, constantemente, comparado com o valor armazenado em CCPRxH e CCPRxL. Ao se verificar uma igualdade, um evento de comparação é disparado.
Nos dois casos, de uma captura ou de uma comparação, é possível a geração, se habilitada, de uma interrupção de programa.
No modo PWM, o temporizador usado é o Timer 2, concatenado com dois bits extras para uma resolução de 10 bits. Nesse modo, um registrador adicional é também usado, o PR2. Através de duas comparações é possível definir a largura do pulso de saída (definida pela comparação do Timer 2 com um valor de ciclo de trabalho – duty cycle, definido pelos valores em CCPRxH e CCPRxL) e o período do sinal gerado pela comparação do Timer 2 com o valor em PR2.
Versão 5.3 - Todos os Direitos reservados