Doppio dimmer con attiny85 e triac

eccolo:

volatile int i=0, y=0;               // variabili contatore...
volatile boolean zero_cross1=0, zero_cross2=0;  // booleane per lo zero crossing
int out1 = 0, out2 = 1;                // Output >> ai moc...
int pot1 = 3, pot2=4;             // ingressi trimmer
int bright1 = 0, bright2 = 0;   // livello di luminosità (0-128)  0 = on, 128 = 0ff 

//int freqStep = 78;    // ritardo del timer in microsecondi
void setup() {
cli();//fermo gli interrupt
TCCR0A &= ~((1<<COM0A0) | (1<<COM0A1)); //disattivi gli interrupt del timer
//modalità contatore fino all'overflow
TCCR0A &= ~((1<<WGM01) | (1<<WGM00));
TCCR0B &= ~(1<<WGM02);
//prescaler a /8
TCCR0B &= ~((1<<CS02) | (1<<CS00));
TCCR0B |= (1<<CS01);
TCNT0 = 178; //valore iniziale
TIMSK |= (1<<TOIE0); //attivo un interrutp all'overflow
sei(); //riattivo gli interrupt
pinMode(out1, OUTPUT);
pinMode(out2, OUTPUT);
attachInterrupt(0, zero_cross_detect, RISING); //zero crossing detection con interrupt esterno 

}

void zero_cross_detect() {    
  zero_cross1 = true;
zero_cross2 = true;
i=0;
y=0;
  digitalWrite(out1, LOW);
digitalWrite(out2, LOW);
}                                 


ISR (TIMER0_OVF_vect) {
    TCNT0 = 178;
  if(zero_cross1 == true) {              
    if(i>=bright1) {                     
      digitalWrite(out1, HIGH);       
      i=0;                         
      zero_cross1 = false;                
    } 
    else {
      i++;                           
    }                                
  }  
if(zero_cross2 == true) {              
    if(y>=bright2) {                     
      digitalWrite(out2, HIGH);       
      y=0;                         
      zero_cross2 = false;                
    } 
    else {
      y++;                           
    }                                
  }                                                                  
}                                   

void loop() {                        
  bright1 = analogRead(pot1) / 8;  
  bright2 = analogRead(pot2) / 8; 
}