C'est faisable, je l'ai fait en utilisant un avrispmk II pour bootloader un atmega168 TQFP, j'ai charger ensuite le sketch par l'isp et changé les fuses pour fonctionner sans quartz.
Ta question, c'est pourquoi c'est le même temps ou bien pourquoi c'est à peu près ?
Dans le premier cas : encore heureux que le temps soit le même..
delay(1000) fait une pause de 1000 millisecondes et les secondes sont les mêmes partout, c'est une grandeur physique universelle qui vaut en tout point de la Terre et quel que soit le système informatique ou électronique.
Pourquoi voudrais-tu que ce soit différent ? Les compilateurs savent quelle est l'horloge de ton microcontrôleur donc lors de la compilation, ils savent s'ils doivent diviser la fréquence par 8 000 ou par 16 000 pour retrouver 1 milliseconde.
Dans le second cas : l'horloge est très rapide mais elle n'est pas forcément très rapide, il peut y avoir une variation mais cela m'étonnerait que tu arrives à la voir "à l'oeil nu" sans appareil de mesure. Pour compter des secondes et des minutes, on utilise parfois des quartz de 32,768 KHz pour avoir des diviseurs de seconde plus précis.
en fait ma question est comment à partir d'un meme prog .pde
Arduino IDE lors du "upload to I/O board" sait quel arduino est connecté
un Atmega à 8 ou 16 mhz
je suppose que si je charge un sketch via une dicimila à 16mhz
puis je sors le chip Atmega168 pour le mettre sur un proto avec un quarzt à une autre freq mes tempo seront fausses
du style freq à 20mhz mes tempo seront trop court de 16/20
J'ai fais des essais dans ce sens, dans l'IDE Arduinoo il faut identifier la plaque que tu utilise dans l'onglet "tools", probablement que c'est de cette façon que la cadence est déterminée.
Lors de mes essais, j'ai chargé des sketch sur un atmega cadencé à 16 MHz et ensuite j'ai changé le quartz.
J'ai testé avec 8MHz, 4MHz, 2MHz, 1MHz et 32,768 KHz, le timming se ralenti dans la même proportion que la valeur du quartz.
justement j'avais l'intention d'utiliser l'arduino diecimila pour:
en partant d'un chip vierge
en premier charger le bootloader "ATmegaBOOT_168_diecimila.hex"
puis développer un sketch avec l'IDE Arduino bien pratique
puis plugger l'atmega directement sur le Circuit Imprimé final
là la question du quartz se pose.
soit rester sur du 16mhz et les timing sont identiques
soit c'est le binz pour re_estimer (proportionel) les timings
certe c'est à peu près une règle de trois pour la fonction delay(x)
mais pour les durées d'instructions c'est une autre paire de manche :-[
bon y a ka , puis mesurer au scope et/ou analyseur logique
bon il reste la question des Frequences quartz
avec les sketchs qui utilisent les timers
genre PWM
ou servo RC
enfin tous prog qui utilisent des delay(x) pour ajuster
quid de la vitesse (baud rate) de la ligne série RS
houla pleins de questions
je crois que je vais rester sur 16Mhz
domage car les chip peuvent monter à 20Mhz
alors si vous avez des idées des essais concluant ou pas
n'hesiter pas