Ah, j'avais pas vu tes nouveaux posts !
si une âme charitable pouvait m'expliquer ce qu'est F_CPU et comment le définir afin de ne plus avoir ce message je lui en serait très reconnaissant. Merci d'avance.
Après un peu de recherche, j'ai trouvé
les fichiers delay.h dans les sous-dossiers associés à avr-dude, du logiciel Arduino. L'erreur est déclenchée par le bout de code :
#ifndef F_CPU
/* prevent compiler error by supplying a default */
# warning "F_CPU not defined for <util/delay.h>"
# define F_CPU 1000000UL
#endif
Et les commentaires au dessus disent ça :
/** \file */
/** \defgroup util_delay <util/delay.h>: Convenience functions for busy-wait delay loops
\code
#define F_CPU 1000000UL // 1 MHz
//#define F_CPU 14.7456E6
#include <util/delay.h>
\endcode
\note As an alternative method, it is possible to pass the
F_CPU macro down to the compiler from the Makefile.
Obviously, in that case, no \c \#define statement should be
used.
The functions in this header file are wrappers around the basic
busy-wait functions from <util/delay_basic.h>. They are meant as
convenience functions where actual time values can be specified
rather than a number of cycles to wait for. The idea behind is
that compile-time constant expressions will be eliminated by
compiler optimization so floating-point expressions can be used
to calculate the number of delay cycles needed based on[b] the CPU
frequency passed by the macro F_CPU.[/b]
\note In order for these functions to work as intended, compiler
optimizations <em>must</em> be enabled, and the delay time
<em>must</em> be an expression that is a known constant at
compile-time. If these requirements are not met, the resulting
delay will be much longer (and basically unpredictable), and
applications that otherwise do not use floating-point calculations
will experience severe code bloat by the floating-point library
routines linked into the application.
The functions available allow the specification of microsecond, and
millisecond delays directly, using the application-supplied macro
[b]F_CPU as the CPU clock frequency (in Hertz).[/b]
*/
Donc clairement, cette constante mémorise le fréquence de ton µP, et l'utilise pour effectuer des calculs en temps plutôt qu'en nombre d'opérations (quelqu'un confirme ?). Visiblement, cette constante peut être définie dans le Makefile qui permet la compilation du programme Arduino que tu as écrit.
Salut, />
Je me permet de poster ici car ma nouvelle question reste sur les transferts de programmes entre PC et ATTiny.
Cette fois je me demande si il est possible de demander au logiciel Arduino de compiler un programme en ".hex", mais sans le transférer sur l'arduino : je veux juste qu'il me le compile et qu'il sauvegarde le ".hex" à côté de mon ".ino".
merci d'avance.
A priori, c'est ce qui est fait quand tu cliques sur "Vérifier" mais pas sur "Téléversement". Par contre, je ne sais pas où atterrit le fichier compilé. Peut-être dans un répertoire temporaire. Je ne connais pas assez le fonctionnement bas-niveau d'Arduino pour t'affirme quelque chose de sûr ...