Example: bachelor of science

MINIMUM - penseeprofonde.org

MINIMUM connaissances n cessaires la programmation des microcontr leurs PIC18 en langage C (une introduction au langage c maj n 4) Equipe de formation sur les microcontr leurs PICR obert ToquebeufLyc e Adam de Craponne13700 Salon de ProvenceAcad mie d DupatyLyc e Fourcade13120 GardanneAcad mie d Cours langage C18 : documents supports SOMMAIRE 1. Organisation g n rale d un compilateur 3 2. LA SYNTAXE DU C : le premier 4 3. VARIABLES, EQUIVALENCES ET CONSTANTES .. 5 4. Les op 5. 7 6. Branchements conditionnels :.. 8 7. Les pointeurs ..9 8. 9. Utilisation des 11 10. 12 11. Champs de bits .. 13 12. 13. Biblioth que standard .. 14 14. La r cursivit en langage C .. 15 15. Les r els .. 15 15. Les r els .. 16 16. Exercices sur PC:.. 17 Compilateur C/C++ gratuits : DOS : TURBO C/C++ WIDOWS : Bloodshed DEV-C++ (GNU free software) Les lecteurs d sirant approfondir leurs connaissances sont invit s consulter les cours sur l algorithmique, le C, le C++ de Certains exemples de ce document proviennent de ce site Nombreux lies vers des sites traitant du C sur Cours langage C18 : documents supports 1.

MINIMUM connaissances nécessaires à la programmation des microcontrôleurs PIC18 en langage C (une introduction au langage c A.N.S.I maj n°4) Equipe de formation sur les microcontrôleurs PIC

Tags:

  Minimum, Minimum penseeprofonde, Penseeprofonde

Information

Domain:

Source:

Link to this page:

Please notify us if you found a problem with this document:

Other abuse

Transcription of MINIMUM - penseeprofonde.org

1 MINIMUM connaissances n cessaires la programmation des microcontr leurs PIC18 en langage C (une introduction au langage c maj n 4) Equipe de formation sur les microcontr leurs PICR obert ToquebeufLyc e Adam de Craponne13700 Salon de ProvenceAcad mie d DupatyLyc e Fourcade13120 GardanneAcad mie d Cours langage C18 : documents supports SOMMAIRE 1. Organisation g n rale d un compilateur 3 2. LA SYNTAXE DU C : le premier 4 3. VARIABLES, EQUIVALENCES ET CONSTANTES .. 5 4. Les op 5. 7 6. Branchements conditionnels :.. 8 7. Les pointeurs ..9 8. 9. Utilisation des 11 10. 12 11. Champs de bits .. 13 12. 13. Biblioth que standard .. 14 14. La r cursivit en langage C .. 15 15. Les r els .. 15 15. Les r els .. 16 16. Exercices sur PC:.. 17 Compilateur C/C++ gratuits : DOS : TURBO C/C++ WIDOWS : Bloodshed DEV-C++ (GNU free software) Les lecteurs d sirant approfondir leurs connaissances sont invit s consulter les cours sur l algorithmique, le C, le C++ de Certains exemples de ce document proviennent de ce site Nombreux lies vers des sites traitant du C sur Cours langage C18 : documents supports 1.

2 Organisation g n rale d un compilateur C Le langage C est un langage de programmation volu , typ , modulaire et structur : Evolu : Le code est ind pendant du processeur utilis Typ : Un type est l ensemble des valeurs que peut prendre une variable Entiers, r els, caract res etc .. ou d finir par le programmeur Modulaire et structur :Tout programme est d composable en t ches simples (3 structures algorithmiques de base) qui seront regroup es sous forme de modules (fonctions) qui eux m me regroup s de fa on coh rente en t ches plus complexes (structur s) formeront le programme. Pr processeur Met en forme le fichier source C partir de directives #define, #include Compilateur C Transforme le fichier C en un fichier objet (code machine), les fonctions pr -compil s sont d clar es dans les fichiers *.

3 H Editeur de lien LINKER Lie (donne des adresses aux fonctions) tous les fichiers objets et cr e un fichier ex cutable #include < > main() { puts(" Bonjour tous "); } Fichiers d inclusion *.h Biblioth ques en C (texte) *.c Biblioth ques pr -compil es (fichiers objet) Programme ex cutable ( ) Fichier source C contenant la fonction main Fichiers pour debug Cours langage C18 : documents supports 2. LA SYNTAXE DU C : le premier programme #include < > #define duree 10000 char c; float pht; void tempo(unsigned int count); void main(void) { PORTB = 0x00; TRISB = 0x00; while(1) { PORTB++; tempo(duree); } } void tempo(unsigned int compte) { while(compte--); } main : fonction principale et point d entr e du programme.

4 Void indique qu il n y pas de param tre d entr e. Equivalences, elles sont remplac es par leurs valeurs par le pr processeur avant compilation Variables globales (inutiles ici): char : octet float r el Fonction (ou sous programme), en C il y a que des fonctions Un param tre entier en entr e, pas de r sultat retourn , du type y=sin(x) compte est une variable locale car d clar e dans la fonction, elle n existe que lors de l ex cution de la fonction. Boucle infinie incr mentant PRB Prototype de la fonction tempo, indispensable car le corps de celle est la fin du programme Biblioth que Repr sentation des nombres : 12 cod en d cimal repr sente 12 0xC cod en hexad cimal repr sente 12 0b00001100 cod en binaire repr sente 12 Cours langage C18 : documents supports 3. VARIABLES, EQUIVALENCES ET CONSTANTES Type Longueur Domaine de valeurs char 8 bits -128 127 unsigned char 8 bits 0 255 int 16 bits -32768 32767 unsigned int 16 bits 0 65535 long 32 bits -2,147,483,648 2,147,483,647 unsigned long 32 bits 0 4,294,967,295 float 32 bits * (10**-38) * (10**+38) double 64 bits * (10**-308) * (10**+308) Exemple de d claration char a,b,c ; /* trois caract res*/ les donn es peuvent tre regroup es en tableaux : int table[100] ; /*tableau de 100 entiers*/ char tableau[]={10,0x1c, A ,55,4} ; /* tableau de 5 caract res*/ char *chaine= bonjour.

5 /*cha ne de 8 caract res (finie par 0)*/ le symbole * d signe un pointeur sur un type d fini char *p ; /* p est un pointeur sur des caract res*/ Equivalences : d clar es apr s la directive #define elles sont remplac es par leur valeur lors de la compilation #define pi #define fruit pomme !Attention il n y a pas de ; apr s une directive #define Constantes : elles sont rang es dans la ROM (dans la RAM en lecture seule sur un PC) et ne sont donc pas modifiables. const int i=16569, char c=0x4c ; Variables: elles sont rang es dans la RAM soit une adresse fixe (statique) soit dans une pile LIFO (dynamique) char a,b=28,c= A ; /* trois caract res dont 2 initialis s*/ auto est le contraire de static pour une variable locale. C est une variable cr e et d truite automatiquement (attribut par d faut).

6 Near indique une adresse sur 16bits au contraire de far sur 21 bits volatile indique une variable modifiable par l environnement (un PORT par exemple) const qui indique une constante (ROM). La distinction ROM/RAM n est pas possible sur tous les syst mes (ex les PC) . Variables Acc s Visibilit Exemple GLOBALE Adresse fixe D clar e en dehors d une fonction, visible partout char c ; LOCALE Pile (perdue la sortie) D clar e et visible dans une fonction Void fonction(void) { char c ; .. STATIQUE Adresse fixe D clar e et visible dans une fonction Void fonction(void) { static char c ; .. EXTERNE D clar e initialis e dans une biblioth que externe extern char c ; Cours langage C18 : documents supports 4. Les op rateurs Fonctions O Description Exemples Identificateurs () Appel de fonction [] Indice de tableau tableau[3]=5; op rateurs unaires !}}

7 N gation logique (NOT) b=!a; (si a>0 => b=0, si a=0 =>b=1) ~ Compl ment binaire bit bit b=~a - Moins unaire b=-a; + Plus unaire b=+a; ++ Pr incr ment ou postincr ment b=a++; (b=a puis a=a+1) -- Pr d cr ment ou postd cr ment b=a--; (b=a puis a=a-1) & Adresse de b=&a; (b gale l'adresse de a) * Indirection (adressage index ) b=*a; ( b=contenu de l'adresse de a)op rateurs binaires * Multiplication c=a*b; / Division c=a/b; + Plus binaire c=a+b; - Moins binaire c=a-b; << D calage gauche c=a<<b.

8 (a est d cal b fois gauche >> D calage droite c=a>>b; (a est d cal b fois droite) & ET entre bits c= a (ET logique bit bit) ^ OU exclusif entre bits c= a ^b; | OU entre bits c= a|b; Tests < Strictement inf rieur if a < b <= Inf rieur ou gal if a >= b > Strictement sup rieur if a > b >= Sup rieur ou gal if a >= b == Egal if a ==b (si a est gale b) !)

9 = Diff rent if a != b && ET logique if ((a=5) && (b=2)) || OU logique if ((a=5) ||(b=2)) ?: Condition z=(a>b)?a:b (Si a>b a z=a sinon z=bAffectation = Affectation simple a=b; (a prend la valeur de b) Auto-affectations *= Affectation produit a*=2 (a=a*2) /= Affectation quotient a/=2 (a= a/2) %= Affectation reste a%=2 (a= le reste de a/2) += Affectation somme a+=2 (a=a+2) -= Affectation diff rence a-=2 (a=a-2) &= Affectation ET entre bits a&=5 (a=a&5) ^= Affectation OU EX entre bits a^=5 (a=a^5))

10 |= Affectation OU entre bits a|==5 (a=a|=5) <<= Affectation d calage gauche a<<=5 (a=a<<5) >>= Affectation d calage droite a>>=5 (a=a>>5) Dans une expression logique le second l ment n est valu que si n cessaire : ex if ((a==0) || (b++==0)) .. B sera incr ment si a !=0 Cours langage C18 : documents supports i < 100 i = i + 1 i = 0 a=a+i Condition de continuation Traitement 5. Boucles For est utilis lorsque l on conna t l avance le nombre d it rations d une boucle. Ex : char i,j=0; for (i=0 ;i<100 ;i++) { j=j+i; } (dans cet exemple les accolades sont superflues, il n y a qu une instruction dans la boucle) char j=0,i=20 ; for (;i<100 ;i++) j=j+i; /* Pas de condition de d part*/ for( ;;) ; /*une boucle sans fin non standard*/ While (expression) {instructions}, tant que l expression est vraie ( !)