Ci sono

... (24h ..sono poche .... una nana bianca forse mi fa' recuperare qualche minuto... mi serve una stella per provare) .
La soluzione migliore è usare un interrupt che cadenza il cambio di pwm , come suggerito da BellaEli.
Arduino , in particolare (mini/nano/uno) usano vome processore un Atmega328 il quale dispone di 3 timer .
Un timer lo stiamo già usando per creare il nostro amato pwm a 15Khz ....
Un secondo timer lo possiamo usare per i campionamenti.
Nei miei scorsi esempi ho evidenziato come calcolare la frequenza di uscita (ricordate 16000000/1/511/2) ...
Stesso discorso , ma ci aggiungiamo qualcosa

Se si analizzano i modi di funzionamento dei timer (tabelle postate da Inverter90) possiamo vedere che il timer si resetta ad un valore preimpostato o scelto dall'utente.
Nel caso "pwm, phase correct 9bit " il valore e' 511 (0x1FF) , ma in altri è OCR ....
Significa che la frequenza in uscita (o il timer) avrà una frequenza pari a :16000000/prescaler/OCR (il diviso 2 non va' messo se il timet si resetta solo sul fronte di salita) .
A questo punto si sceglie il prescalet giusto per avvicinarsi ai 50Hz e si fa' una regolazione fine con l'OCR ....
La risposta alla tua domanda è OCR

, oppure fat ripetere uno step pwm o saltare uno step pwm, ottenendo appunto una variazione di fase di 1/200esimo di periodo.
Differenza tra i due metodi di rifasamento:
-nel primo caso non introduco distorsione ,ma vario la frequenza
-nel secondo introduco distorsione , ma non vario la frequenza .
Quale sia il migliore ?
Bo!!!!
Ciao
Elettro
ps:andate forti e nutro ammirazione a Inverter90 che pian pianino raggiungerà dama.