Ceci est un exemple de code source montrant le paramètrage minimal d’un PIC12F683 pour sortir sur GPIO2 des états hauts d’une longueur d’un temps cycle soit 500ns (8MHz = 2MIPS). Cela permet ainsi de valider un circuit avec ce composant en vérifiant que :
- Le composant est correctement alimenté.
- L’oscillateur fonctionne.
Pour cela, un fichier à ajouter à un projet vierge dans MPLAB avec les compilateurs Hi-Tech PICC :
#include <htc.h>
/////////// Bits de configuration : Voir datasheet page 84, 12.1 Configuration bits //////////////
__CONFIG(FCMEN_OFF \
& IESO_OFF \
& BOREN_OFF \
& CPD_OFF \
& CP_OFF \
& MCLRE_ON \
& PWRTE_ON \
& WDTE_OFF \
& FOSC_INTOSCIO);
void main(void) {
//// Configuration de l'oscillateur interne (datasheet page 20, 3.2 Oscillator control) //////////
OSCCONbits.IRCF = 0b111; // 8Mhz
OSCCONbits.SCS = 0; // Configuration de l'horloge systeme
// définie par les bits de configuration
///// Configuration de entrees/sorties numeriques ////////////////////////////////////////////////
ANSELbits.ANS2 = 0; // GPIO2 est numerique
TRISIObits.TRISIO2 = 0; // GPIO2 est une sortie
while(1) {
GPIObits.GP2 = 1;
GPIObits.GP2 = 0;
}
}
/////////// Bits de configuration : Voir datasheet page 84, 12.1 Configuration bits //////////////
__CONFIG(FCMEN_OFF \
& IESO_OFF \
& BOREN_OFF \
& CPD_OFF \
& CP_OFF \
& MCLRE_ON \
& PWRTE_ON \
& WDTE_OFF \
& FOSC_INTOSCIO);
void main(void) {
//// Configuration de l'oscillateur interne (datasheet page 20, 3.2 Oscillator control) //////////
OSCCONbits.IRCF = 0b111; // 8Mhz
OSCCONbits.SCS = 0; // Configuration de l'horloge systeme
// définie par les bits de configuration
///// Configuration de entrees/sorties numeriques ////////////////////////////////////////////////
ANSELbits.ANS2 = 0; // GPIO2 est numerique
TRISIObits.TRISIO2 = 0; // GPIO2 est une sortie
while(1) {
GPIObits.GP2 = 1;
GPIObits.GP2 = 0;
}
}