Página 1 de 1

7 segmentos Mux / timer 0

MensagemEnviado: 21 Set 2008 12:50
por tmarchesi2
Boa Tarde pessoal;

Alguém saberia me dizer como fica a configuração dos registradores do Timer 0 do Avr (atmega32) para trabalhar com regarca automática e gerar uma interrupção a cada 2 ms, o cristal é de 8 mhz.

Meu projeto é o seguinte:

Estou multiplexando 2 display de 7 segmentos para exibir a temperatura de um lm35, porém quero que a cada interrupção do timer, os displays sejam atualizado. Eu ainda não descobri o erro da minha lógica, pois quando ligo o circuito, o valor da varoavel A 1 aparece no display 2 e na proxima interrupção o valor da variavel B também aparece no display 2.


Ja conferi a ligação do hardwre e está ok, até agora nao entendi o problema.

OBrigado a todos

MensagemEnviado: 22 Set 2008 08:33
por RobL
TMR0 para 2ms e supondo TCR0A e TCR0B limpos:

TCR0A |= 1<<WGM1 // WGM2 = 0, WGM1=1, WGM0 = 0 modo CTC
TCR0B |= 1<<CS02 // CS01 = 0 CS00=0 1/64 prescaler
OCR0A = 250 d // 250 decimal

liberar interrupção para TIMER0 COMPA

E só para lembrar, a cada interrupção ligar o catodo da variável A desligar B e na outra interrupção ligar o da variável B e desligar A.
Se as duas variáveis estão saindo em um só dígito é por que somente
este catodo está sendo ligado.
Verifique se sua rotina em cada estouro seta um catodo e resseta o outro.

MensagemEnviado: 23 Set 2008 18:36
por tmarchesi2
Obrigado pela Ajuda Robl;

Mas verificando com mais calma o problema, descobri outras coisas;

Os fuses do Atmega32, estavam configurados para 8mhz, depois deste problema, verifiquei que haviam mais fuses selecionados, e outros deselecionados, recebi a dica do fornecedor do kit, para desmacar o fuse relacionado ao Jtag, farei o teste hoje a noite, vamos ver os resultados.

Meu gravador e software, foi montado do site do pony prog, é tudo simples.

Grato Thiago Marchesi

MensagemEnviado: 28 Set 2008 18:58
por tmarchesi2
Problema resolvido !

O problema estava relacionado aos fuses do Jtag. Fiz a alteração e o software está funcionando corretamente. Não precisei alterar uma linha no código fonte.


É isso, vivendo e aprendendo !

Abraço a todos