Página 1 de 1

REINICIAR CONTAGEM DO TIMER 0

MensagemEnviado: 08 Set 2016 08:32
por fmatheus
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

Re: REINICIAR CONTAGEM DO TIMER 0

MensagemEnviado: 08 Set 2016 08:50
por eletroinf
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.

Re: REINICIAR CONTAGEM DO TIMER 0

MensagemEnviado: 08 Set 2016 09:36
por fmatheus
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