user
Que veut dire FCY 4000000UL ? dans la programmation d'un PIC
alphonsio

La constante FCY définit la fréquence du cycle d'instruction. Cette constante peut être utilisée ultérieurement pour calculer des délais ou de temporisations.


Dans la programmation d’un microcontrôleur PIC (par exemple en langage C avec MPLAB X et le compilateur XC8), la directive suivante :

#define FCY 4000000UL

signifie :

  • FCY : c’est généralement une macro qui définit la fréquence du cycle d’instruction (Instruction Cycle Frequency).
  • 4000000UL : cela signifie 4 000 000 d’unités (en l’occurrence, 4 MHz). Le suffixe UL signifie que la valeur est un entier non signé de type long (Unsigned Long), ce qui évite certains avertissements ou erreurs de compilation.

Pourquoi c’est important ?

Les bibliothèques comme <libpic30.h> (dans les projets avec des PICs 16-bit ou 32-bit, par exemple dsPIC ou PIC24) utilisent la macro FCY pour calculer les temporisations, par exemple dans :

__delay_ms(100);  // Nécessite FCY pour calculer le nombre de cycles

Si FCY n’est pas défini, vous obtiendrez une erreur ou un comportement incorrect des temporisations.

Comment FCY est lié à la fréquence d’horloge du PIC ?

  • FCY est souvent défini comme :

    FCY = Fosc / 2
    

    Fosc est la fréquence de l’oscillateur système (le quartz ou l’horloge interne/externe du microcontrôleur).

  • Exemple : si le PIC tourne à Fosc = 8 MHz, alors FCY = 4 MHz.