Medir Periodo do PWM com o PIC

Software e Hardware para uC PIC

Moderadores: andre_luis, 51, guest2003, Renie

Medir Periodo do PWM com o PIC

Mensagempor Bardelli » 05 Mar 2008 11:46

Olá All.

Estou apanhando com algo que deveria ser simples. Estou usando um PIC para gerar um sinal PWM qualquer, e um outro PIC para ler esse sinal e calcular o periodo da onda.

Alguem ai tem ideia de como eu posso utilizar os timers (estou utilizando uma interrupção externa no pino RB0 para ler o sinal PWM, e isso está funcionando) para medir o periodo da onda??. Estou utilizando o Compilador C da CCS

abracos
Bardelli
Byte
 
Mensagens: 126
Registrado em: 20 Out 2006 12:42

Mensagempor ze » 05 Mar 2008 16:22

1 sugestão:
-timer1 = clock interno
-desligue o timer1 TMR1ON=0;
-zere o timer1 TMR1H=TMR1L=0;
-aguarde a mudança de 0 pra 1 do pino a ser medido a largura. while(RBX);while(!RBX)
-ligue o timer1 TMR1ON=1;
-aguarde o pino ir pra 0. while(RBX);
-desligue o timer1 TMR1ON=0;
-pegue seu valor proporcional à largura em 1 em TMR1H e TMR1L.

Períodos mui longos, use o prescaler do timer1

Solução meia burra (não poderia ser diferente) pois trava se não houver sinal. Implemente um timeout. Ou use a cabeça e tente fazer com o capture mode.
(16F648)
Capture Mode
In Capture mode, CCPR1H:CCPR1L captures the
16-bit value of the TMR1 register when an event occurs
on pin RB3/CCP1. An event is defined as:
• Every falling edge
• Every rising edge
• Every 4th rising edge
• Every 16th rising edge

Não vai querer que eu faça isso pra você tbém, né?
abrç
Avatar do usuário
ze
Dword
 
Mensagens: 1655
Registrado em: 05 Jun 2007 14:32


Voltar para PIC

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante

x