Quote:Ok, ma se volessimo tagliare la testa al toro giusto per capire e ad esempio per OCR1B volessimo usare la negativa la formula sarà sempre (indice-250)?
No !
Sarebbe qualcosa del genere:
OCR1B = 400 - pgm_read_byte(&onda[Indice - 250]);
Ma ti è chiaro il funzionamento ?
a 0 µS il PWM del pin 9 e 10 è a 0
// Istante iniziale in cui parte il microa 40 µS il PWM del pin 9 viene settato a 5
// Il PWM inizia a crescerea 80 µS il PWM del pin 9 viene settato a 10
a 120 µS il PWM del pin 9 viene settato a 15
...
a 5.000 µS il PWM del pin 9 viene settato a 400
// Il PWM raggiunge il picco superiore...
a 5.160 µS il PWM del pin 9 viene settato a 399
// Il PWM inizia a calare...
a 10.000 µS il PWM del pin 9 viene settato a 0
// Il PWM del Pin 9 torna a 0a 10.040 µS il PWM del pin 10 viene settato a 5
// Inizia a crescere il PWM del Pin 10a 10.080 µS il PWM del pin 10 viene settato a 10
a 10.120 µS il PWM del pin 10 viene settato a 15
...
quindi a ogni chiamata dell'ISR viene modificato il valore del PWM di un solo PIN !
E ogni cambiamento verrà effettuato ogni 40 µS !
Fammi capire se ti è chiaro come funziona...