Outils d'utilisateurs

Outils du Site


gcbasic:compilateur:ifdef

Ceci est une ancienne révision du document ! —-

#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

Syntaxe Exemple :

 
    #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 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 

Este programa usa una constante llamada PinsToFlash que controla cuantas luces son pulsadas. PORTB.0 es pulsado cuando PinToFlash es igual a 1, 2 o 3, PORTB.1 es pulsado cuando PinToFlash iguala 2 o 3, y PORTB.2 es pulsado cuando PinsToFlash es 3.

Permitiendo código si un sistema de variables es definido

Ejemplo de Syntaxis

 
    #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 sección de código de arriba ha sido copiada directamente de a-d.h. Es usado para no permitir la funcion A/D en pines, de manera que puedan ser usados en forma de puertos de entrada y salida digital. Si ANSEL no es declarada como un sistema de variables para un chip en particular, entonces el programa usa ADCON1 para controlar los modos de puerto. If ANSEL es definido, entonces el chip es nuevo y sus puertos pueden ser fijados a digital llevando ANSEL a cero.

Permitiendo código si un sistema de bits es definido

Similar a arriba, excepto con Bit and NoBit en el lugar de Var y NoVar respectivamente.

Voir aussi :
definitions #define

retour

gcbasic/compilateur/ifdef.1261176118.txt.gz · Dernière modification: 2009/12/18 23:41 par per