Skip to main content
clarify meaning without changing it
Link
explorer
  • 379
  • 2
  • 5
  • 17

Why does timer ISR not execute?

This is my code which iI have written as a library

#include "avr/interrupt.h"  
#include "Arduino.h"
#include "AllTimer.h"

AllTimer::AllTimer()
{}

void AllTimer::dofun(void)
{
     //TIFR1 |= _BV(OCF1A);

    TCCR1B = 0X00;
    //TIFR1 = 0X01;
    digitalWrite(13,!digitalRead(13));
    Serial.print("I printed");
    TCNT1 = 0X0000;
    TCCR1B |= (1<<CS12) && (1<<CS10);
    //sei();
}
 

 void AllTimer::setTimer(void)
 {
    TCNT1 = 0x0000;
    TCCR1A = 0x00;
    TCCR1B = 0x00;
    TCCR1B |= (1<<CS12) && (1<<CS10);
    TIMSK1 |= (1<<TOIE1);
    sei();
 } 

ISR (TIMER1_OVF_vect)
{
     AllTimer::dofun();
}  

Code in Arduino IDE:

 #include <AllTimer.h>

 AllTimer mytimer;

 void setup()
 {
     pinMode(13,OUTPUT);
     Serial.begin(9600);
 }

 void loop()
 {
   
     mytimer.setTimer();
    //delay(200);
    
  }

But i AmI am not getting anything on the serial monitor. What is the error iI have made?

This is my code which i have written as library

#include "avr/interrupt.h"  
#include "Arduino.h"
#include "AllTimer.h"

AllTimer::AllTimer()
{}

void AllTimer::dofun(void)
{
     //TIFR1 |= _BV(OCF1A);

    TCCR1B = 0X00;
    //TIFR1 = 0X01;
    digitalWrite(13,!digitalRead(13));
    Serial.print("I printed");
    TCNT1 = 0X0000;
    TCCR1B |= (1<<CS12) && (1<<CS10);
    //sei();
}
 

 void AllTimer::setTimer(void)
 {
    TCNT1 = 0x0000;
    TCCR1A = 0x00;
    TCCR1B = 0x00;
    TCCR1B |= (1<<CS12) && (1<<CS10);
    TIMSK1 |= (1<<TOIE1);
    sei();
 }
ISR (TIMER1_OVF_vect)
{
     AllTimer::dofun();
}  

Code in Arduino IDE:

 #include <AllTimer.h>

 AllTimer mytimer;

 void setup()
 {
     pinMode(13,OUTPUT);
     Serial.begin(9600);
 }

 void loop()
 {
 
     mytimer.setTimer();
    //delay(200);
 
  }

But i Am not getting anything on the serial monitor. What is the error i have made?

This is my code which I have written as a library

#include "avr/interrupt.h"  
#include "Arduino.h"
#include "AllTimer.h"

AllTimer::AllTimer()
{}

void AllTimer::dofun(void)
{
     //TIFR1 |= _BV(OCF1A);

    TCCR1B = 0X00;
    //TIFR1 = 0X01;
    digitalWrite(13,!digitalRead(13));
    Serial.print("I printed");
    TCNT1 = 0X0000;
    TCCR1B |= (1<<CS12) && (1<<CS10);
    //sei();
}

 void AllTimer::setTimer(void)
 {
    TCNT1 = 0x0000;
    TCCR1A = 0x00;
    TCCR1B = 0x00;
    TCCR1B |= (1<<CS12) && (1<<CS10);
    TIMSK1 |= (1<<TOIE1);
    sei();
 } 

ISR (TIMER1_OVF_vect)
{
     AllTimer::dofun();
}  

Code in Arduino IDE:

 #include <AllTimer.h>

 AllTimer mytimer;

 void setup()
 {
     pinMode(13,OUTPUT);
     Serial.begin(9600);
 }

 void loop()
 {  
     mytimer.setTimer();
    //delay(200);   
  }

But I am not getting anything on the serial monitor. What is the error I have made?

edited body
Source Link
explorer
  • 379
  • 2
  • 5
  • 17

This is my code which i have written as library

#include "avr/interrupt.h"  
#include "Arduino.h"
#include "AllTimer.h"

AllTimer::AllTimer()
{}

void AllTimer::dofun(void)
{
     //TIFR1 |= _BV(OCF1A);

    TCCR1B = 0X00;
    //TIFR1 = 0X01;
    digitalWrite(13,!digitalRead(13));
    Serial.print("I printed");
    TCNT1 = 0XFFFF;0X0000;
    TCCR1B |= (1<<CS12) && (1<<CS10);
    //sei();
}


 void AllTimer::setTimer(void)
 {
    TCNT1 = 0xFFFF;0x0000;
    TCCR1A = 0x00;
    TCCR1B = 0x00;
    TCCR1B |= (1<<CS12) && (1<<CS10);
    TIMSK1 |= (1<<TOIE1);
    sei();
 }
ISR (TIMER1_OVF_vect)
{
     AllTimer::dofun();
}  

Code in Arduino IDE:

 #include <AllTimer.h>

 AllTimer mytimer;

 void setup()
 {
     pinMode(13,OUTPUT);
     Serial.begin(9600);
 }

 void loop()
 {

     mytimer.setTimer();
    //delay(200);

  }

But i Am not getting anything on the serial monitor. What is the error i have made?

This is my code which i have written as library

#include "avr/interrupt.h"  
#include "Arduino.h"
#include "AllTimer.h"

AllTimer::AllTimer()
{}

void AllTimer::dofun(void)
{
     //TIFR1 |= _BV(OCF1A);

    TCCR1B = 0X00;
    //TIFR1 = 0X01;
    digitalWrite(13,!digitalRead(13));
    Serial.print("I printed");
    TCNT1 = 0XFFFF;
    TCCR1B |= (1<<CS12) && (1<<CS10);
    //sei();
}


 void AllTimer::setTimer(void)
 {
    TCNT1 = 0xFFFF;
    TCCR1A = 0x00;
    TCCR1B = 0x00;
    TCCR1B |= (1<<CS12) && (1<<CS10);
    TIMSK1 |= (1<<TOIE1);
    sei();
 }
ISR (TIMER1_OVF_vect)
{
     AllTimer::dofun();
}  

Code in Arduino IDE:

 #include <AllTimer.h>

 AllTimer mytimer;

 void setup()
 {
     pinMode(13,OUTPUT);
     Serial.begin(9600);
 }

 void loop()
 {

     mytimer.setTimer();
    //delay(200);

  }

But i Am not getting anything on the serial monitor. What is the error i have made?

This is my code which i have written as library

#include "avr/interrupt.h"  
#include "Arduino.h"
#include "AllTimer.h"

AllTimer::AllTimer()
{}

void AllTimer::dofun(void)
{
     //TIFR1 |= _BV(OCF1A);

    TCCR1B = 0X00;
    //TIFR1 = 0X01;
    digitalWrite(13,!digitalRead(13));
    Serial.print("I printed");
    TCNT1 = 0X0000;
    TCCR1B |= (1<<CS12) && (1<<CS10);
    //sei();
}


 void AllTimer::setTimer(void)
 {
    TCNT1 = 0x0000;
    TCCR1A = 0x00;
    TCCR1B = 0x00;
    TCCR1B |= (1<<CS12) && (1<<CS10);
    TIMSK1 |= (1<<TOIE1);
    sei();
 }
ISR (TIMER1_OVF_vect)
{
     AllTimer::dofun();
}  

Code in Arduino IDE:

 #include <AllTimer.h>

 AllTimer mytimer;

 void setup()
 {
     pinMode(13,OUTPUT);
     Serial.begin(9600);
 }

 void loop()
 {

     mytimer.setTimer();
    //delay(200);

  }

But i Am not getting anything on the serial monitor. What is the error i have made?

Source Link
explorer
  • 379
  • 2
  • 5
  • 17
Loading