• Aucun résultat trouvé

Introduction au langage C. Comprendre les Microcontrôleurs Jean-Daniel NICOUD et Pierre-Yves ROCHAT

N/A
N/A
Protected

Academic year: 2022

Partager "Introduction au langage C. Comprendre les Microcontrôleurs Jean-Daniel NICOUD et Pierre-Yves ROCHAT"

Copied!
33
0
0

Texte intégral

(1)

Comprendre les Microcontrôleurs

Jean-Daniel NICOUD et Pierre-Yves ROCHAT

Introduction au langage C

(2)

2 Comprendre les Microcontrôleurs | Introduction au langage C | 2013

Un peu d'histoire...

Variables et assignations

Structures de contrôle

Procédures

et programme principal

Introduction au langage C

(3)

3 Comprendre les Microcontrôleurs | Introduction au langage C | 2013

Histoire du C

Créé en 1972 par Dennis Ritchie dans les laboratoires Bell d'AT&T.

Résultat de l'évolution de de langages plus anciens

(4)

4 Comprendre les Microcontrôleurs | Introduction au langage C | 2013

Histoire du C

Créé en 1972 par Dennis Ritchie dans les laboratoires Bell d'AT&T.

Résultat de l'évolution de de langages plus anciens

Écriture concise, proche de l'assembleur

Sa simplicité en fait un bon candidat pour les microcontrôleurs

(5)

5 Comprendre les Microcontrôleurs | Introduction au langage C | 2013

Histoire du C

Créé en 1972 par Dennis Ritchie dans les laboratoires Bell d'AT&T.

Résultat de l'évolution de de langages plus anciens

Écriture concise, proche de l'assembleur

Sa simplicité en fait un bon candidat pour les microcontrôleurs

Standardisation ANSI en 1989 et 1999

Le C++ (orienté objet) est une très grande extension du C

(6)

6 Comprendre les Microcontrôleurs | Introduction au langage C | 2013

Histoire du C

Créé en 1972 par Dennis Ritchie dans les laboratoires Bell d'AT&T.

Résultat de l'évolution de de langages plus anciens

Écriture concise, proche de l'assembleur

Sa simplicité en fait un bon candidat pour les microcontrôleurs

Standardisation ANSI en 1989 et et 1999

Le C++ (orienté objet) est un très grande extension du C

GCC ( GNU Compiler Collection ) : base de beaucoup de compilateurs pour microcontrôleurs.

(7)

7 Comprendre les Microcontrôleurs | Introduction au langage C | 2013

Variables et assignations

int x définit une variable

(ici, un nombre, on parlera plus tard des types)

(8)

8 Comprendre les Microcontrôleurs | Introduction au langage C | 2013

Variables et assignations

int x définit une variable

(ici, un nombre, on parlera plus tard des types)

L' assignation : x = 12;

x = y + 3;

x = x ­ 2;

(9)

9 Comprendre les Microcontrôleurs | Introduction au langage C | 2013

Variables et assignations

int x définit une variable

(ici, un nombre, on parlera plus tard des types)

L' assignation : x = 12;

x = y + 3;

x = x ­ 2;

Les opération arithmétiques : +   ­   *   /   %

(10)

1 0

Comprendre les Microcontrôleurs | Introduction au langage C | 2013

Structures de contrôle

Test :   if        Boucles : while do...while

Instruction

Test

Instruction

Test

Instruction

Structures de contrôle de base :

(11)

1 1

Comprendre les Microcontrôleurs | Introduction au langage C | 2013

if : le test de base

Instruction

Test

if (Condition) {

  Instruction;

}

if (Condition){

  Instruction;

}

(12)

1 2

Comprendre les Microcontrôleurs | Introduction au langage C | 2013

if : le test de base

La structure if est un test, ensuite le programme se poursuit ! L'instruction peut s'exécuter 0 ou 1 fois.

Instruction

Test

if (Condition) {

  Instruction;

}

if (Condition){

  Instruction;

}

(13)

1 3

Comprendre les Microcontrôleurs | Introduction au langage C | 2013

if...else : le test complet

if (Condition) {

  Instruction1;

}

else {

  Instruction2;

}

Instruction2

Test

Instruction1

(14)

1 4

Comprendre les Microcontrôleurs | Introduction au langage C | 2013

if...else : le test complet

Avec le if...else , la condition fausse donne aussi lieu à une instruction !

Exactement 1 instruction s'exécute, soit Instruction1, soit Instruction2.

if (Condition) {

  Instruction1;

}

else {

  Instruction2;

}

Instruction2

Test

Instruction1

(15)

1 5

Comprendre les Microcontrôleurs | Introduction au langage C | 2013

if...else : un exemple

if (x == 0) {   // ...

}

else if (x == 1) {   // ...

} else {   ///...

}

(16)

1 6

Comprendre les Microcontrôleurs | Introduction au langage C | 2013

if...else : un exemple

if (x == 0) {   // ...

}

else if (x == 1) {   // ...

else {

  ///...

}

(17)

1 7

Comprendre les Microcontrôleurs | Introduction au langage C | 2013

while : la boucle avec test initial

Instruction

while (Condition) {

  Instruction;

}

while (Condition){

  Instruction;

}

(18)

1 8

Comprendre les Microcontrôleurs | Introduction au langage C | 2013

while : la boucle avec test initial

La structure while est une boucle. Elle peut durer indéfiniment ! L'instruction peut s'exécuter 0, 1 ou plusieurs fois.

Instruction

while (Condition) {

  Instruction;

}

while (Condition){

  Instruction;

}

(19)

1 9

Comprendre les Microcontrôleurs | Introduction au langage C | 2013

while : la boucle avec test final

Instruction

Test

do {

  Instruction;

} while (Condition);

do {

  Instruction;

} while (Condition);

(20)

2 0

Comprendre les Microcontrôleurs | Introduction au langage C | 2013

while : la boucle avec test final

Instruction

Test

La structure do...while est une boucle. Elle peut durer indéfiniment ! L'instruction peut s'exécuter 1 ou plusieurs fois.

do {

  Instruction;

} while (Condition);

do {

  Instruction;

} while (Condition);

(21)

2 1

Comprendre les Microcontrôleurs | Introduction au langage C | 2013

Un exemple

Avance;

while (1) {

  if (FinCourseDroite){

    Avance;

  if (FinCourseGauche) {     Recule;

  } }

(22)

2 2

Comprendre les Microcontrôleurs | Introduction au langage C | 2013

Un exemple

Avance;

while (1) {

  if (FinCourseDroite){

    Avance;

  if (FinCourseGauche) {     Recule;

  } }

Quizz

Quel mouvement du chariot effectue cette partie de programme ?

Le chariot avance, puis recule et s'arrête.

Le chariot fait un mouvement de va-et-vient permanent

Le chariot avance, puis s'arrête

(23)

2 3

Comprendre les Microcontrôleurs | Introduction au langage C | 2013

D'autres présentations

while (1) {

  if (BoutonOn){

    Allume;

  }

  if (BoutonOff) {     Eteint;

  } }

while (1) {

  if (BoutonOn)   {

    Allume ;   }

  if (BoutonOff)   {

    Eteint;

  } }

while (1){if(BoutonOn){Allume;} if(BoutonOff){Eteint;}}

(24)

2 4

Comprendre les Microcontrôleurs | Introduction au langage C | 2013

for : une autre manière d'écrire une boucle

D'abord un exemple :

for (i=0 ; i<10 ; i++) {    // instructions

}

Trois paramètres :

l'initialisation : une instruction qui s'exécute une fois au début de la boucle

la condition : la condition pour que la boucle continue

« l'incrémentation » : une instruction qui s'exécute à chaque itération

(25)

2 5

Comprendre les Microcontrôleurs | Introduction au langage C | 2013

Un exemple

 int i;

 for (i=0, i<=5 ; i++) {    AllumeLed;

   Delay (500);

   EteintLed;

   Delay 500;

 }

Quizz

Combien de fois la LED va

s'allumer par ce programme ? 4 fois

5 fois 6 fois

(26)

2 6

Comprendre les Microcontrôleurs | Introduction au langage C | 2013

break : pour sortir d'une boucle

L'instruction break termine l'exécution de la boucle englobante dans laquelle elle apparaît.

(27)

2 7

Comprendre les Microcontrôleurs | Introduction au langage C | 2013

break : pour sortir d'une boucle

L'instruction break termine l'exécution de la boucle englobante dans laquelle elle apparaît.

...

while (1) {    ...

  if (condition) {     Break ; 

  }

  ...

}

// suite du programme...

(28)

2 8

Comprendre les Microcontrôleurs | Introduction au langage C | 2013

switch...case : un branchement conditionnel

La structure switch...case  permet d'effectuer des tests et débranchements selon une liste de valeurs d'une variable.

case 1

case 2

case 3

Instruction1

Instruction2

Instruction3

switch (expression) { 

  case (1) : Instruction1;

  case (2) : Instruction2;

  case (3) : Instruction3; 

}

(29)

2 9

Comprendre les Microcontrôleurs | Introduction au langage C | 2013

switch...case : un branchement conditionnel

switch (expression) { 

  case (1) : Instruction1;

  case (2) : Instruction2;

  case (3) : Instruction3; 

}

switch (expression) { 

  case (1) : Instruction1;

  case (2) : Instruction2;

  case (3) : Instruction3;

  default : InstructionDef; 

}

(30)

3 0

Comprendre les Microcontrôleurs | Introduction au langage C | 2013

switch...case : un branchement conditionnel

Dans presque tout les cas, la structure  switch...case  s'utilise avec des break Attention de ne pas les oublier !

case 1

case 2

case 3

Instruction1

Instruction2

Instruction3

break

break

switch (expression) { 

  case (1) : Instruction1;

       break;

  case (2) : Instruction2;

       break;

  case (3) : Instruction3; 

       // break;

}

(31)

3 1

Comprendre les Microcontrôleurs | Introduction au langage C | 2013

Procédures

Exemples de procédure

   void Clign (int nombre) { 

     for (i=0; i<nombre; i++) {

       Allume; Delay(500); Eteint; Delay(500);

     }    }

   

   int Carre (int nombre) {      return nombre*nombre;

   }

(32)

3 2

Comprendre les Microcontrôleurs | Introduction au langage C | 2013

La procédure main : le programme principal

Une procédure particulière : main

   void main () { 

     // instructions...

   }

   int main () {      setup() ;

     while (1) {        loop() ;      }

   }

(33)

3 3

Comprendre les Microcontrôleurs | Introduction au langage C | 2013

Variables et assignations

Structures de contrôle

Procédures

et programme principal

Ce ne sont pas tous les éléments du langage C

On en verra d'autres plus tard.

Comprendre les Microcontrôleurs

Références

Documents relatifs

Tout cela, et parfois une de ces pyramides d’un noir plombé qui s’élèvent sur les puits de pétrole, composent le paysage désespéré qui m’entoure, et que ne connaissent que

Cette expérience curatoriale a fait de Sudre un expert de la photographie sous l’angle de ses images, de ses photo- graphes, de ses techniques, laissant de lui l’image

En un sens évident, il y a toujours eu une philosophie de la technique ou plutôt une présence du thème de la technique dans la réflexion philosophique. Kapp avec son ouvrage :

On peut manipuler 2 types de variables dans un module (procédure ou fonction) : des variables locales et des.

Roux de Bézieux et à moi-même a reçu un avis très favorable de la CommissionM. LE MAIRE : Je mets aux voix les conclusions de mon

NF15 Chapitre 1 : Introduction aux microcontrôleurs Philippe Pouletaut © UTC 2007 1. Chapitre 1 : Introduction

Certaines données (variables) peuvent avoir à être initialisées à une valeur avant le lancement du programme, ainsi que certaines fonctionnalités du microcontrôleur comme les

Mais l'Esprit souffle où il veut… Dans chacune de ses paroles, dans l'embrouillamini de ses feuilles de notes déliquescentes, dans le sourire provocant qu'il