Quote:Gentilmente ho bisogno di chiarire sto concetto perche non mi da pace!!!!
Il funzionamento è abbastanza semplice.
Nel micro c'è un contatore chiamato TCNT che incrementa il suo numero ad ogni clock.
Il clock è legato alla selezione del prescaler.
Quindi conterà 0-1-2-3-4-//498-499 ---- ecc ecc
Questo valore può essere comparato con tre soglie OCR1 OCR1A OCR1B in automatico o in manuale dipendente dalla configurazione dei registri.
Facciamo l'esempio di fast pwm a 9 bit (vedi datasheet):
-il contatore TCNT conterà da 0 fino a 512 e al suo raggiungimento verrà resettato.
Fin qui semplice.
Ora se lo scopo è ottenere un segnale pwm devo avere dei Pin fisici in uscita che siano dipendenti dal contatore o meglio dalle soglie.
Quindi rendo i Pin OC1A e OC1B dipendenti dalle soglie OCR1A e OCR1B.
Se impostati "normali" significa che quando viene resettato il contatore TCNT il Pin viene portato a 5V e al raggiungimento del valore OCR1A o OCR1B il rispettivo Pin si porta a 0V .
Quindi se impostiamo ad esempio a 200 l'OCR1A il dipendente piedino OC1A sarà a 5V fino a 200 ,poi resterà a 0V fino a 512.
Diversamente se impostiamo il piedino come invertito ,il Pin verrà posto a 0V ogni volta che viene resettato il contatore e posto a 1 ogni volta che supera la soglia OCR1A o OCR1B.
Tutto chiaro !!!!
Ora aggiungo la parte meno digeribile il "a correzione di fase".
In questo caso il contatore TCNT conta in avanti fino al valore 511 poi conta all'indietro fino a 0 .. poi di nuovo avanti e poi indietro.
I piedini anche in questo caso saranno dipendenti dalle soglie.
In normale il Pin sarà a 5V se il valore TNTC è inferiore a OCR1A o OCR1B e 0V se superiore.
In invertito il Pin sarà a 0V se il valore TNTC è inferiore a OCR1A o OCR1B e 5V se superiore.
Se ad esempio impostiamo a 100 OCR1A e 110 OCR1B succede che fino a 100 OC1A sarà a 5V e OC1B a 0V ,poi da 100 a 110 entrambi a 0V (deadtime) e sopra i 110 il Pin OC1B andrà a 5V e OC1A a 0V.
Questo è il metodo che adottò per pilotare il ponte .
Ciao e spero di aver chiarito ciò che è scritto nel datasheet e nella guida che ho postato.