III. 3. 2 Quelques notions de programmation en C sous
MikroC :
La saisie d'un programme en `C' répond pratiquement
toujours à la même structure. On peut
noter que [12] :
- Le symbole «#» est suivi d'une directive.
- Le symbole «//» est suivi d'un commentaire, ou bien
«/*» indiquant le début d'un commentaire
et «*/» indiquant sa fin.
- Chaque ligne d'instruction se termine par un «;».
- Le début d'une séquence est
précédé du symbole «{».
- La fin d'une séquence est suivie du symbole
«}».
- La notation des nombres peut se faire en décimal de
façon normale ou en hexadécimal avec le
préfixe «0x» ou encore en binaire avec le
préfixe«0b».
III. 3. 3 Les instructions de MikroC
Nous allons identifier uniquement les fonctions et les
instructions les plus importantes que nous avons utilisées dans notre
programme.
a. La boucle `for' :
Elle permet de contrôler le nombre de fois à
exécuter un bloc d'instructions. Dans la syntaxe de cette boucle on
trouve : la valeur initiale du compteur, ça valeur finale est la valeur
avec laquelle il doit être incrémenté (ou
décrémenté) chaque fois que le bloc d'instructions est
exécuté [10].
Commande de l'éclairage public et mesure de la
température à base de PIC18F4550
|
|
for (i=0 ;i=10 ;i++) //i est le compteur
{
portd = portd++; // incrémenté PORTD
}
Chapitre III Programmation de PIC18F4550
Peut-on utiliser la boucle 'for' comme une boucle infinie comme
suit :
for ( ;; )// boucle infinie
{
portd = portd++; // incrémenté PORTD
}
B. Opérateur de condition `if / else'
Cet opérateur permet d'exécuter une partie du
programme sous certaines conditions. La syntaxe de cet opérateur est la
suivante [10] :
if (condition)
{
séquences d'instructions à exécuter si la
condition est vérifiée
}
else
{
séquences d'instructions à exécuter si la
condition n'est pas vérifiée
}
C. Instruction goto :
La directive goto permet de brancher directement à
n'importe quel endroit de la fonction courante idéntifiée par une
étiquette. Une étiquette est un idéntificateur suivi du
signe »:». Exemple :
Start1 :
for ( ;; )// boucle infinie
{
portd = portd++; // incrémenté PORTD
DELAY_ms(500); // attendre une demi-seconde If (portc.f1==0)
goto Start2 ;
}
Start2 :
for ( ;; )// boucle infinie
{
portd = portd--; // décrémenté PORTD
DELAY_ms(500); // attendre une demi-seconde If (portc.f0==0)
goto Start1 ;
}
Commande de l'éclairage public et mesure de la
température à base de PIC18F4550
|
|
Chapitre III Programmation de PIC18F4550
|