Dimmer com IR Remote

Amigos, consegui resolver o problema que eu queria.
Agora estou com outro problema, estou tentando passar código para o attiny85, mas devido os timers e interrupções serem diferentes e estar rodando em 8Mhz tive que fazer algumas modificações no sketch.

Como ainda não entendo muito bem a fundo a questão de timers poderiam me ajudar com o código abaixo e me auxiliar no que pode estar errado?
A Luz esta ficando acessa continuamente, sem fazer o dimmer,

// AC Control V1.1

#include <avr/io.h>
#include <avr/interrupt.h>

#define DETECT 0  //zero cross detect
#define GATE 2    //triac gate
#define PULSE 4   //trigger pulse width (counts)
int i=483;

void setup(){

  // set up pins
  pinMode(DETECT, INPUT);     //zero cross detect
  digitalWrite(DETECT, HIGH); //enable pull-up resistor
  pinMode(GATE, OUTPUT);      //triac gate control

  // set up Timer0
  OCR0A = 100;      //initialize the comparator
  TIMSK = 0x03;    //enable comparator A and overflow interrupts
  TCCR0A = 0x00;    //timer control registers set for
  TCCR0B = 0x00;    //normal operation, timer disabled


  // set up zero crossing interrupt
  attachInterrupt(5,zeroCrossingInterrupt, RISING);    
    //IRQ0 is pin 5. Call zeroCrossingInterrupt 
    //on rising signal

}  

//Interrupt Service Routines

void zeroCrossingInterrupt(){ //zero cross detect   
  TCCR0B=0x04; //start timer with divide by 256 input
  TCNT0 = 0;   //reset timer - count from zero
}

ISR(TIMER0_COMPA_vect){ //comparator match
  digitalWrite(GATE,HIGH);  //set triac gate to high
  TCNT0 = 65536-PULSE;      //trigger pulse width
}

ISR(TIMER0_OVF_vect){ //timer0 overflow
  digitalWrite(GATE,LOW); //turn off triac gate
  TCCR0B = 0x00;          //disable timer stopd unintended triggers
}

void loop(){ // sample code to exercise the circuit

i--;
OCR0A = i;     //set the compare register brightness desired.
if (i<65){i=483;}                      
delay(15);                             

}