Bonjour.
Un de mes projets peut être implanté sur deux platines.
L'une avec un processeur Atmel MEGA16;
L'autre, un processeur Tiny2313.
Pour s'adapter sans avoir à ré-écrire de nombreuses lignes, j'utilise des '.INCLUDE xxx' qui contiennent les lignes particulières à chaque processeur.
Pour le Mega16 j'ai
Pour le Tiny:Code:.INCLUDE "E:\Processeur_Mega.00.inc" .INCLUDE "E:\Platine_Mega.00.inc"
Afin de n'avoir qu'une seule procédure pour compiler l'un ou l'autre version, j'ai alors voulu utiliser les 'if defined' du préprocesseur;Code:.INCLUDE "E:\Processeur_Tiny.00.inc" .INCLUDE "E:\Platine_Tiny.00.inc"
(voir: https://www.microchip.com/webdoc/avr...irectives.html)
J'ai fait deux en-têtes , pour chacun des processeurs
puis une partie commune aux deux, nommée "commun.inc"
Pour le mega:
Pour le tiny:Code:#define Processeur Mega .INCLUDE "E:\commun.inc'
la partie commune:Code:#define Processeur Tiny .INCLUDE "E:\commun.inc'
Je fais certainement une erreur car cela ne fonctionne pas...: les #INCLUDE de la partie commune sont ignorés.Code:#if defined (Mega) #INCLUDE "E:\ Processeur_Mega.00.inc" #INCLUDE "E:\Platine_Mega.00.inc" #endif ;---------------- #if defined (Tiny) #INCLUDE "E:\Processeur_Tiny.00.inc" #INCLUDE "E:\Platine_Tiny.00.inc" #endif
Où est l'erreur?
Merci si vous pouvez me l'indiquer.
-----