1

Configurer votre microcontrôleur

module_PicKit2
Pour nos applications, nous avons choisis d’utiliser la famille des PIC en raison de la facilité de mise en place ainsi que l’étendue de l’aide que l’on peut trouver en ligne.

Nous étions sur des 16f877A et sommes passés aux 18f en raison d’une plus grande mémoire et de plus de possibilités. Nous publierons des articles en fonction de l’avancement de nos applications. Si vous avez des propositions d’applications orientés robotique, n’hésitez pas à nous contacter.

Microchip fournit des outils interressant pour le développement mais aussi parfois un peu couteux. Aussi nous avons opté pour l’utilisation du PicKit2 qui permet de faire les utilisations basiques des applications (charger, lire, nettoyer, mettre un point d’arrêt) voir ci-contre.

L’environnement de développement est MPLAB V8.1 qui est téléchargeable sur le site de Microchip. Pour développer, nous codons en C (et malheureusement pas en C++ mais nous cherchons toujours un moyen d’y arriver) en raison du compilateur qui ne supporte pas la programmation objet.

Voila, vous avez tout l’environnement pour programmer, et charger … charger quoi ? Hé bien il est temps de faire votre première carte pour créer vos applications. Pour la partie connexion entre la platine PicKit2 et votre micro-contrôleur vous pouvez vous référer à la fiche « connexion avec la platine PicKit2″ de la partie électrique

0

Allumer une LED a partir du PIC 18F4550

Vous êtes enfin près à écrire votre premier code! Nous allons juste faire un point rapide sur ce que vous avez à portée de main. Tout d’abord vous avez « LE BIGONOFF » !!! Vous pouvez le trouver facilement sur internet en allant sur son site. A la limite je pourrais m’arrêter là tellement sont travail est bien fait et son aide précieuse.

Cependant, les exemple de programmation qui vont vous être proposés ne sont que pour faire de l’assembleur ce qui peut être quelque peu repoussant dans un premier temps. Etant donné que notre robot est programmé en C, je vais vous montrer quelques exemples de codes qui pourraient vous aider pour débuter.

Tout d’abord il faut bien entendu faire un projet dans MPLAB et créer un fichier « main.c ».

Dans ce main on va mettre le code suivant que l’on va détailler après :

#include

int main()
{
ADCON1 = 0b00000000;
TRISA = 0b00000000;
PORTA = 0b11111111;

do{
// c’est ici que vous mettrez vos futures codes, après l’initialisation du PIC
}while(!0);

return 0;
}

Alors qu’est ce que c’est que tout ça ???
Bien je vous ai dit juste un petit programme pour commencer. Il n’est vraiment pas compliqué…
#include va permettre de dire qu compilateur quelle famille de microcontroleur on va utiliser. Sans ça, il va pas comprendre lorsque vous utiliserez des instruction qui ne font pas partie du langage C comme PORTA ou TRISA …
« ADCON1″ permet de mettre le PORT A de votre microcontroleur en mode numérique. Pour le mode analogique on verra plus tard (sinon allez voir le codage d’un télémètre dans la partie électronique)
Ensuite, « TRISA » permet de mettre le PORT A en sortie. Petit moyen mémotechnique :
O pour OUTPUT sortie
I pour INTPUT entrée
Enfin « PORTA = 0b11111111; » va mettre les sorties à 1. Elles sont ici codées en binaire mais vous aurriez pu le mettre ne hexa ce qui aurrait donné « PORTA = 0xFF » etc…
Jouez un peu avec les bits et vous comprendrez rapidement comment paramètrer vos PORTs
=> Oui mais moi j’ai qu’une LED à allumer sur la broche 0 du PORT A !!! Il y pas plus simple ?
Hé bien pas de panique il suffit de faire le code suivant

Alors qu’est ce que c’est que tout ça ??? Bien je vous ai dit juste un petit programme pour commencer. Il n’est vraiment pas compliqué…
#include va permettre de dire qu compilateur quelle famille de microcontroleur on va utiliser. Sans ça, il va pas comprendre lorsque vous utiliserez des instruction qui ne font pas partie du langage C comme PORTA ou TRISA …
« ADCON1″ permet de mettre le PORT A de votre microcontroleur en mode numérique. Pour le mode analogique on verra plus tard (sinon allez voir le codage d’un télémètre dans la partie électronique) Ensuite, « TRISA » permet de mettre le PORT A en sortie. Petit moyen mémotechnique :     O pour OUTPUT sortie     I pour INTPUT entrée
Enfin « PORTA = 0b11111111; » va mettre les sorties à 1. Elles sont ici codées en binaire mais vous aurriez pu le mettre ne hexa ce qui aurrait donné « PORTA = 0xFF » etc… Jouez un peu avec les bits et vous comprendrez rapidement comment paramètrer vos PORTs
=> Oui mais moi j’ai qu’une LED à allumer sur la broche 0 du PORT A !!! Il y pas plus simple ?
Hé bien pas de panique il suffit de faire le code suivant :

#include

int main()

{

ADCON1 = 0b00000000;

TRISA = 0b00000000;

RA0 = 1; // on met la broche 0 du PORTA à 1

do{

PORTA = 0×00; // pour initialiser le PORT à 0

DelayMs(1500); // on fait une temporisation pour clignoter il faut jouer avec la valeur pour que ce soit perceptible

RA0 = 0; // on met la broche 0 du PORTA à 0

DelayMs(1500);

}while(!0);

return 0;

}

Et voila. Bon c’étais juste un petit code pour se mettre en jambe. Cependant si vous rencontrez des soucis, n’ésitez pas à nous contacter pour que nous complétions notre article.