Input capture GP32 - Medidas erradas

Software e Hardware para uC da Qualcomm, NXP, FreeScale e Motorola

Moderadores: 51, guest2003

Input capture GP32 - Medidas erradas

Mensagempor Claudio_Rodrigues » 17 Dez 2006 21:57

Pessoal,

Apos varios dias tentanto , resolvi pedir ajuda para uma mera medida de pulso com fins didaticos.
Tenho na entrada T1CH0 um sinal de 32KHz (saida DS1307) e estou tentando apenas pegar o valor do timer na borda de subida.
Estou usando codewarrior em C e consigo cair na rotina de int do timer, mas a cada vez que leio o contador, tenho valores diferentes.
Acredito que nao estou zerando algum timer ou coisa parecida.
Ja tentei com processor expert, mas da na mesma. A rotina de int e a seguinte:

void Capture(void)

{

contador = T1CNT;

lcd_escreve_hexa(contador); // mostra valor hexa no lcd

T1SC0_CH0F = 0;
}

Inicializacao do timer: ( Gerada pelo PE )
void Cap1_Init(void)
{
T1CH0H = 0;
T1CH0L = 0;
T1MODH = 0xFF;
T1MODL = 0xFF;
T1SC = 0x30;
T1SC_PS = 0x02;
T1SC0 = 0x44;
T1SC_TSTOP = 0; /* Run counter */
}

agradeco qualquer ajuda e se possivel algum exemplo em C.
Claudio_Rodrigues
Bit
 
Mensagens: 9
Registrado em: 15 Out 2006 21:29
Localização: Campinas

Mensagempor fenix3 » 17 Dez 2006 23:54

Qual a velocidade de clock do GP32, experimenta aumentar para 32Mhz,

Para oscilador em 10Mhz e clock de captura em 32Khz, acho que eh muito,

Pode tambem experimentar abaixar o clock do sinal de entrada, para uns 2Khz e teste novamente....

Voce tambem precisa ler o valor do timer capture e diminuir o valor de uma medida anterior, ai voce vai ter o tempo do ultimo periodo...

Tambem tem outro problema, o tempo de escrita no LCD sera muito grande, entao nao faca isso detro da rotina do timer capture, faca algumas medidas, talvez montando uma lista, fila ou pilha, ai em outra rotina controlada pelo timer couter, voce faria a escrita no LCD depois de algumas leituras...talvez ate tirando media...ou maximos e minimos...
Luis Fenix
Maaaaraaaaviiilhaaaaaa! (Bem devagar para irritar a todos).
Avatar do usuário
fenix3
Byte
 
Mensagens: 317
Registrado em: 12 Out 2006 03:46
Localização: Minha sala, ora pois!

Mensagempor Claudio_Rodrigues » 18 Dez 2006 13:46

Valeu Fenix,

O problema maior era mesmo o tempo do lcd. Para testes usei uma matriz para guardar 50 contagens e vi pelo proprio debug que os valores agora estao corretos. Tambem entendi que devo subtrair a contagem anterior. Achava que tinha que zerar o contador a cada int.

obrigado e desculpa pelas duvidas de iniciantes.
Claudio_Rodrigues
Bit
 
Mensagens: 9
Registrado em: 15 Out 2006 21:29
Localização: Campinas


Voltar para NXP (ex-FreeScale (ex-Motorola))

Quem está online

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

cron

x