Go Down

Topic: ISR(TIMER1_COMPA_vect) (Read 3 times) previous topic - next topic

Manuel Silva

I am learning C and have the following problem:

I want to use timer interrupt routine. The routine works, the LED switch ON and OFF. In side of the routine I want decrement a counter. The routine is below:

(I declare the count variable as "volatile uint16_t count=0;").

Code: [Select]

ISR(TIMER1_COMPA_vect)          // timer compare interrupt service routine
{
 
  digitalWrite(ledPin, digitalRead(ledPin) ^ 1);   // toggle LED pin
  count--;
   if (count=0)
  {
    TCCR1B =0;
  } 
}   



I want decrement a counter (count) and stop the timer when it reaches zero, but, the counter doesn't decrement.

Can you please help on solving this problem?

Thanks,
Manuel

Nick Gammon

Code: [Select]
if (count=0)

To compare you need to use ==, like this:


Code: [Select]
if (count == 0)
http://www.gammon.com.au/electronics

bubulindo


Code: [Select]

   if (count=0)



Ahhh, thanks for this. :)

I have some fun memories from a friend of mine that never managed to get this right. And he knew how to program, and yet never came to memorize the difference between "=" and "==". LOLOL
Eu não sou o teu criado. Se respondo no fórum é para ajudar todos mediante a minha disponibilidade e disposição. Responder por mensagem pessoal iria contra o propósito do fórum e por isso evito-o.
Se realmente pretendes que eu te ajude por mensagem pessoal, então podemos chegar a um acordo e contrato onde me pagas pela ajuda que eu fornecer e poderás então definir os termos de confidencialidade do meu serviço. De forma contrária toda e qualquer ajuda que eu der tem de ser visível a todos os participantes do fórum (será boa ideia, veres o significado da palavra fórum).
Nota também que eu não me responsabilizo por parvoíces escritas neste espaço pelo que se vais seguir algo dito por mim, entende que o farás por tua conta e risco.

Dito isto, mensagens pessoais só se forem pessoais, ou seja, se já interagimos de alguma forma no passado ou se me pretendes convidar para uma churrascada com cerveja (paga por ti, obviamente).

Manuel Silva

Thanks for your help. It was really a crazy question. It was lat in the night, so, I may was sleeping.

regards,
Manuel

Go Up