Go Down

Topic: Cosa rende diversi i pin digitali PWM dagli altri ? (Read 2096 times) previous topic - next topic

leo72

@nid69ita:
I pin PWM agganciati al timer 0 (D5 e D6) generano un segnale con una frequenza di circa 976 Hz mentre gli altri a 490 Hz.
La scelta di questi valori non è casuale. Il timer 0, come detto, è usato anche per le funzioni temporali dell'Arduino.
I timer hanno un circuito di prescaler all'ingresso del clock, che dividono la frequenza di sistema mediante valori predefiniti. Siccome il clock di sistema è impostato a 16 MHz, usando un divisore di /64 si ha il segnale di 976 Hz senza modifiche ulteriori ai registri del timer stesso. 976 Hz vuol dire 976 "colpi" al secondo. Mediante una piccola correzione manuale (non entro nei dettagli) si arriva ad avere un "colpo" lungo 1 millisecondo (invece di 0,976 ms) grazie al quale si può gestire millis e delay, che operano con i millisecondi.

Inoltre i timer 1 e 2 dell'Atmega328 sono impostati per operare in modalità Phase Correct PWM mentre il timer 0 in modalità Fast PWM. La prima genera un'onda triangolare mentre la seconda un'onda a dente di sega.

Go Up