Frequenza di clock

Salve a tutti, so che è un argomento già trattato ma....

Come si legge dal datasheet a fronte di un cristallo a 16Mhz, è possibile modificare la frequenza di funzionamento di Arduino. Per far ciò sembra che basti modificare il file arduino-0015\hardware\cores\arduino\Makefile sul parametro F_CPU = 1600000. Questo permette di cambiare la frequenza di funzionamento di arduino cito "ATmega48/88/168: 0 - 10 MHz @ 2.7 - 5.5V, 0 - 20 MHz @ 4.5 - 5.5V"... Fin qui dico cavolate?

Tuttavia, ieri sera ho provato a mettere, al posto di 16milioni il numero 1... Ho dato un serialprint di una stringa e mi aspettavo di vedere quella stringa una volta al secondo... Viceversa appariva con un refresh velocissimo... Ora mi chiedo: è possibile abbassare la frequenza di arudino realmente o ho sbagliato qualcosa? Nel caso si possa abbassare, quale è il limite? Grazie.

Credo che tu non possa cambiare la velocità via software, dovresti cambiare il clock hardware. Al limite potresti settare il clock interno al posto di quello esterno. Cmq non sono sicuro, probabilmente sbaglio.......

Ciao Eugenio. Si, è possibile modificare la frequenza ma ho letto solo a metà il post che ne parlava. Quello che si scrive a fondo pagina è che oltre a cambiare il parametro bisogna ricompilare il bootloader e caricarlo... E li mi fermo però perchè non so come fare e non ho voglia di sbattermi al riguardo. Il cristallo, da cosa mi sembra di capire va sempre a 16Mhz ma l'arduino lavora alla frequenza che gli dici tu... Questo serve moltissimo per far consumare meno la scheda. In altre parole se gli attacchi una batteria da 9V... dovrebbe durare molto di più... Per un dispositivo che deve stare all'esterno con l'alimentazione di rete lontana... è un toccasano (si scrive così?)...

L'atmel168 sopporta fino a 20mhz entro questo range(0-20mhz) tu puoi mettere qualunque clock(in teoria anche di più se vuoi fare un overclock). Ed ovviamente in funzione del clock avrai un consumo diverso. Non ci giurerei ma credo che una volta che hai un clock hardware esterno a 16mhz(arduino) il software ti girerà sempre a quella velocità. probabilmente se scegli x l'oscillatore interno, le modifiche le potrai fare. Il bootloader va riprogrammato solo se cambi fisicamente l'oscillatore. IMHO