REINICIAR CONTAGEM DO TIMER 0

Software e Hardware para uC PIC

Moderadores: andre_luis, 51, guest2003, Renie

REINICIAR CONTAGEM DO TIMER 0

Mensagempor fmatheus » 08 Set 2016 08:32

Olá turma,

Desculpe-me se minha dúvida parece muito trivial mas realmente não estou conseguindo reiniciar o Timer 0
Estou usando o compilador CCS

A rotina é bem simples:

1 - Aperto um botão para iniciar o Timer 0 e lIgar um Rele
Código: Selecionar todos
     if (!tecla1')
        {
         delay_ms(200);
         output_high(pin_A5);   //Liga rele
         enable_interrupts(INT_TIMER0); //Inicia Timer 0
        }
     


2 - As vezes vou precisar interromper o Timer no meio da contagem e desligar o rele
Código: Selecionar todos
      if (!tecla2')
        {
         delay_ms(200);
         output_low(pin_A5);   //Desliga rele
         disable_interrupts(INT_TIMER0); //Desliga Timer 0
         set_timer0(100); //Recarrega o valor inicial do timer
       }
       


3 - Quando aperto novamente a tecla 1 pra ligar o timer0 ele recomeça a contagem do ponto em que parou e não do incio como eu desejaria
Ao apertar a tecla2 eu quero zerar o Timer0 e fazer com que ele recomece a contagem do ponto inicial
Já pesquisei na net mas não achei nada a respeito até agora
fmatheus
Bit
 
Mensagens: 39
Registrado em: 02 Mar 2007 14:53

Re: REINICIAR CONTAGEM DO TIMER 0

Mensagempor eletroinf » 08 Set 2016 08:50

Me parece que tu estás usando PIC.
De todo modo, nas suas rotinas, tu está ligando/desligando a INTERRUPÇÃO do timer.
Tem de ver como mexe no módulo dele (para mexer na contagem) e no flag de liga/desliga a contagem.
Ligar/desligar a interrupção não pára o timer, ele continua contando, só não gera interrupção.
"De cada um segundo sua capacidade a cada um segundo sua necessidade."
Avatar do usuário
eletroinf
Word
 
Mensagens: 948
Registrado em: 12 Out 2006 14:59
Localização: Santa Maria - RS

Re: REINICIAR CONTAGEM DO TIMER 0

Mensagempor fmatheus » 08 Set 2016 09:36

eletroinf escreveu:Me parece que tu estás usando PIC.
De todo modo, nas suas rotinas, tu está ligando/desligando a INTERRUPÇÃO do timer.
Tem de ver como mexe no módulo dele (para mexer na contagem) e no flag de liga/desliga a contagem.
Ligar/desligar a interrupção não pára o timer, ele continua contando, só não gera interrupção.


Vc tem razão a respeito da interrupção
Mas em relação ao comando set_timer (100), não era pra ele recarregar a contagem do timer?

Uma outra ideia que me ocorreu seria limpar o flag do Timer mas não sei como fazer isso
fmatheus
Bit
 
Mensagens: 39
Registrado em: 02 Mar 2007 14:53


Voltar para PIC

Quem está online

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

x