por renatokodaira » 03 Dez 2010 08:21
O que eles estao querendo dizer eh que voce nao vai mais contar o numero de pulsos do sinal em determinado periodo de tempo (base de tempo), mas que agora precisa medir o periodo do sinal e depois fazer o calculo da frequencia (1/T).
Por exemplo:
O seu PIC tem um modulo de CCP (Compare, Capture, PWM). O que voce vai usar eh o Capture.
Voce vai configurar o TMR1 como contador, com clock vindo do proprio PIC, ou seja Fosc/4 e usando o divisor postcaler (digamos por 8 ). Como o TMR1 eh um contador de 16 bits, ele pode contar ateh 65535. Se usar um cristal de 1MHz no PIC, e configurar o postcaler para 8, cada incremento do contador TMR1 vai acontecer a cada 32 us, ou seja o contador pode contar ateh 65535 x 32us = 2,097 s o que jah eh suficiente.
O sinal que voce quer medir vai num pino que seja sensivel a borda de subida ou de descida. Quando ocorrer uma subida do seu sinal, o PIC vai reconhecer (por interrupçao) e voce liga e aciona a contagem no TMR1, e ele vai começar a contar independentemente do seu sinal. Quando ocorrer outra borda de subida (seu sinal medido estah completando um ciclo), voce pára o TMR1 e veja quanto foi a contagem dele. Esse valor multiplicado por 32 us corresponde ao periodo (T) do seu sinal. Pra calcular a frequencia basta fazer a conta 1/T. Exemplo: se a contagem foi de 45000, entao o periodo eh: 45000 x 32us = 1440 ms ou 1,44s cuja frequencia seria de 1/1,44 = 0,694 Hz ou 694mHz.