void dimer ( void )
{
while (TRUE) { // bucle infinito
set_adc_channel ( 0 ) ; // selecciono el canal para que lo lea
delay_us ( 10 ) ;
R0 = read_adc () ;
set_adc_channel ( 1 ) ; // selecciono el canal para que lo lea
delay_us ( 10 ) ;
R1 = read_adc () ;
set_adc_channel ( 2 ) ; // selecciono el canal para que lo lea
delay_us ( 10 ) ;
R2 = read_adc () ;
printf ( " r0 , r1 es :%U , %u\n\r" , r0,r1) ;
retraso = 0;
while ( sinc != 0 ); // permence aquí hasta cruce por 0
while (retraso<255) {
if ( retraso == R0 ) // si coincide i con el retraso al disparo
IR = DR = 1 ; // dispara el triac
if ( retraso == R1 ) // si coincide i con el retraso al disparo
IG = DG = 1 ; // dispara el triac
if ( retraso == R2 ) // si coincide i con el retraso al disparo
IB = DB = 1 ; // dispara el triac
delay_us (30); // este es el retraso que habría que ajustar para apurar los 10ms
retraso++;
}
IR = DR = IG = DG = IB = DB = 0;
}
}