Outils d'utilisateurs

Outils du Site


gcbasic:compilateur:ifdef

#ifdef

retour

Syntaxe:
#ifdef Constante | Valeur Constante | Variable(NomVariable)
… #endif

Explication :
La directive #ifdef est utilisée pour choisir sélectivement des parties de code. Il y a trois manière dans lesquels on peut l'utiliser.
L'avantage d'utiliser #ifdef est préférable à une série équivalente de IF par la quantité de code qui est chargé dans la puce du PIC. #ifdef contrôle que le code est compilé et chargé. IF contrôle le fonctionnement, une fois dans la puce du PIC. #ifdef devrait être utilisé quand une fois la valeur d'une constante doit être testé.

(Note: Le code dans les sections suivantes ne se compilera pas, parce que on n'a pas mis les directives de la puce PIC et les commandes DIR. Comprenez qu'ils sont seulement donnés comme exemple)

Permettre le code si une constante est définie

Exemple 1 de Syntaxe

 
    #define Blink1 

    #ifdef Blink1 
        PulseOut PORTB.0, 1 sec 
        Wait 1 sec 
    #endif 
    #ifdef Blink2 
        PulseOut PORTB.1, 1 sec 
        Wait 1 sec 
    #endif 

Ce code enverra une impulsion sur PORTB.0, mais pas sur PORTB.1. Ceci est dû à ce que Blink1 a été défini, mais pas Blink2. Si la ligne :

#define Blink2

était ajouté au commencement du programme, alors les deux broches pourraient envoyer des impulsion. La valeur d'une constante définie n'est pas importante et peut être laissé loin de la ligne du #define.

Permettre l'exécution du code si une constante est définie et a une valeur donnée

Exemple 2 de Syntaxe

 
    #define PinsToFlash 2 

    #ifdef PinsToFlash 1,2,3 
        PulseOut PORTB.0, 1 sec 
    #endif 
    #ifdef PinsToFlash 2,3 
        PulseOut PORTB.1, 1 sec 
    #endif 
    #ifdef PinsToFlash 3 
        PulseOut PORTB.2, 1 sec 
    #endif 

Ce programme utilise une constante appelée PinsToFlash qui contrôle combien de lumières clignotent. PORTB.0 clignote quand PinToFlash est égale à 1, 2 ou 3, PORTB.1 cignote quand PinToFlash égale 2 ou 3, et PORTB.2 clignote quand PinsToFlash égale 3.

Permettre le code si un système de variables est défini

Exemple de Syntaxe

 
    #ifdef NoVar(ANSEL) 
         SET ADCON1.PCFG3 OFF 
         SET ADCON1.PCFG2 ON 
         SET ADCON1.PCFG1 ON 
         SET ADCON1.PCFG0 OFF 
    #endif 
    #ifdef Var(ANSEL) 
         ANSEL = 0 
    #endif 

La section de code au dessus a été copiée directement de a-d.h. Il est utilisé pour ne pas permettre la fonction A/D sur les broches, de façon qu'on puisse les utilisés comme ports d'entrée ou de sortie digitale. Si ANSEL n'est pas déclaré comme un système de variables pour une puce en particulier, alors le programme utilise ADCON1 pour contrôler les modes des ports. Si ANSEL est défini, alors la puce est nouvelle et ses ports peuvent être fixés en digital en mettant ANSEL à zéro.

Permettre le code si un système de bits est défini

Similaire à au dessus, excepté avec Bit et NoBit au lieu de Var et NoVar respectivement.

Voir aussi :
definitions #define

retour

gcbasic/compilateur/ifdef.txt · Dernière modification: 2009/12/19 18:08 par per