Got it.
Here the code with some comments:
// Timer/Counter 1 ATTiny24/44/84 using Arduino as ISP using repo of david a. mellis
// Toggle LED with Timer1 using CTC (Clear Timer on Compare Match)
// by bongo1234 11.11.2017
// Arduino IDE 1.8.5
// ATMEL DOCUMENTATION ATTiny24/44/84: PAGE 108 (Timer 1)
// for prescaler: doc page 97 (formula) and 111 (cs10-cs12 selection)
//
#define PIN 0 // SELECT YOUT OUTPUT PIN
#define I_FLAG 7 // Status register Flag I enables intrrupt globally
void setup(){
pinMode(PIN, OUTPUT);
TCCR1A = 0; // TCCR1A to 0 (no MODIFICATION ON OCR1 with CTC Mode) (DEFAULT)
TCCR1B = 0; // reset TCCR1B (DEFAULT)
OCR1A = 2000; // Output Compare Register 16-Bit recalculte for other timing
GTCCR |= (1 << PSR10); // reset prescalar (DEFAULT)
TCCR1B |= (1 << WGM12); // clear Timer when Counter (TCNT1) equals OCR1A --> CTC (Clear Timer on Compare Match)
TCCR1B |= (1 << CS12) | (1 << CS10); // 1024 prescaler
TIMSK1 |= (1 << OCIE1A); // Interrupt Mask Register 1: enable interrupt for TCNT is equal OCR1A
TIFR1 |= (1 << OCF1A); // set OCF1A flag for interrupt vector TIM1_COMPA_vect (DEFAULT)
TCNT1 = 0; // start value 0
SREG |= (1 << I_FLAG); // enable global interrupt in status register. It'ss equal to sei(); function
}
// Interrupt Service Routine for Timer1 (Vector select in TIFR1)
ISR(TIM1_COMPA_vect){
digitalWrite(PIN, digitalRead(PIN) ^ 1); // toggle PIN
}
void loop(){
}
cheers b