[RISOLTO]:clock out su Arduino

menniti:
infatti se uso il chip col quarzo esterno sul pin vengono sparati 16000000 +/- 1 Hz, cioè non solo frequenza precisa ma anche estremamente stabile; quindi ciò che tu mi stai insegnando si rferisce alla precisione "di base" o anche alla stabilità della frequenza?

Che trovi 16.000.000 Hz +/- 1Hz non ci credo nemmeno se lo vedo :grin:
Scherzi a parte non è possibile che misuri 16 MHz esatti per il semplice motivo che anche un buon quarzo ha la sua tolleranza, diciamo 20 ppm per uno buono, che rapportato a 16MHz fanno un errore compreso tra +/- 160 Hz rispetto al valore nominale.
Esempio pratico, se misuro la frequenza del quarzo della UNO, della mega 2560 e delle tre Luigino 328 che ho a mia disposizione trovo queste frequenze :

Ta 22.3C°, misura presa dopo 60 dall'accensione della scheda.

UNO 15.959.622 Hz
2560 16.000.036 Hz
L328 1 15.999.957 Hz
L328 2 16.000.982 Hz
L328 3 16.000.115 Hz

Da notare che le misure le ho fatte aspettando solo un minuto dopo aver acceso la scheda, ma tenuto conto che la temperatura ambiente è poco più di 23C° e che normalmente Arduino non scalda va bene farla così.
Il frequenzimetro usato è un METEX da laboratorio, uno strumento calibrato nemmeno due mesi fa e preciso al singolo Hertz fino a 500 MHz, inteso non come visualizzazione, che è a 9 cifre, ma proprio come precisione reale.
Ho lasciato completare il warm up, circa 10 minuti, al frequenzimetro in modo da permettere al sistema di termostabilizzazione del suo oscillatore di andare a regime.
Poi anche con i quarzi c'è da fare i conti con la deriva termica che incide di altri ppm in funzione della temperatura, quanti e come dipendono dal modello specifico (consultare data sheet)
Il valore della frequenza sulla UNO è abbastanza distante da quello atteso, quasi 41 kHz in meno, perché sull'ATmega non c'è un quarzo, ma un risonatore ceramico, notoriamente meno precisi dei quarzi, in compenso sono molto più stabili di un oscillatore RC.

OSCCAL interviene solo sulla frequenza dell'oscillatore RC, la stabilità dipende in gran parte dalla temperatura, però per effetto di questa non fluttua rapidamente, è una variazione abbastanza lenta.