Arduino DUE conversione Timer e interrupt delle schede MEGA

Ciao a tutti, sto riscontrando alcuni problemi nel convertire uno sketch funzionante su arduino mega ad arduino due.

lo sketch serve per pilotare una scheda triac multicanale autocostruita, ed utilizza degli interrupt, timer e comparatori per calcolare a seconda del segnale di zerocorss quando far partire il triac.

copio un riassunto del codice incriminato:

void setup() {
cli();
TCCR1A = 0x00;  // clear
TCCR1B = 0x00;  // clear
TIMSK1 = 0x02;  // Enable the Output Compare A
OCR1A  = 1250;  // = 128 steps on 50hz with no timer prescale
sei();
}

ISR(TIMER1_COMPA_vect) {
dimLevel++;

for (int x = 0; x < countTriac; x++)
{
 if (canaleTriac[x] = = dimLevel | | canaleTriac[x] = = dimLevel + 1) {        // fire second triac
     digitalWrite(pinTriac[x], HIGH);
 }
}

if (dimLevel == MAX_LEVEL + 1) {
   for (int x = 0; x < countTriac; x++)
   {
     digitalWrite(pinTriac[x], LOW);
   }
   TCCR1B = 0;
}
}

void zero_cross_detect() {
TCNT1  = 0;          // reset timer - count from zero
TCCR1B = 0x09;       // start timer with no prescale and reset tcnt1 on compare

start_low_fix = false;
dimLevel = 0;
}

il problema è che l'arduino due non ha le stesse funzioni relative ai timer e registri associati e non riesco a replicare questo funzionamento su arduino due.

qualcuno ha già avuto questo problema e riesce a farmi un po' di chiarezza su come poter fare?

grazie a quanti mi daranno una mano.