cerco di esserti di aiuto, devi ricavarti il period in questo modo:
Parametri: frequenza da ottenere = 40 KHz
PeriodoPWM = 1/40KHz = 0.025 secondi, che moltiplicati per 1000 sono 25 millisecondi
Fosc (frequenza del quarzo) = 20 MHz
TMR2 prescaler(prescaler ) = 1
questa è la formula semplificata:
period (8 bit) = ((PeriodoPWM * Fosc) / (4 * TMR2 Prescaler)) - 1 = ((25 msec * 20 MHz)/ (4 * 1))-1 = (500/4)-1 = 125-1 = 124
(se il tuo TMR2 Prescaler fosse 2, il tuo period sarebbe uguale a 61,5
prova a sostituire 40KHz con 20KHz e, se i calcoli sono esatti, dovresti ottenere 249 (se mi ricordo bene, il valore dell'esempio di Mauro)...
Chi vola vale, chi vale vola, chi non vola è un vile