PWM VELOCE

Alessiof76:

mah, io sono un po' perplesso, ho realizzato il seguente codice utilizzando l'uscita OC0B del micro ovvero la sezione B del timer 0 per avere un'onda quadra da 100 kHz con duty cycle variabile tra un minimo e un massimo:

TCC0A=B00100011; //fast PWM mode non invertito e TOP OCRA anziché FF
TCC0B=B00001001; //no prescaling TOP OCRA anziché FF

OCR0A=160; //frequenza 100 kHz

for (;:wink:
{
OCR0B=10; //duty cycle basso
delay(1000);
OCR0B=100; //duty cycle elevato
delay(1000);
}

il programma lavora correttamente ma la funzione delay non risulta operativa e il duty cycle varia tra un valore ed un altro rapidissimamente come se non ci fosse delay! In teoria dovrei avere un'alternanza di duty cycle alto e basso con un periodo di 1 secondo.
Fosse che la funzione delay utilizza lo stesso timer (timer0) e pertanto viene in qualche modo inibita?
Questo per me è un problema!