SlideShare une entreprise Scribd logo
1  sur  24
Télécharger pour lire hors ligne
Les outils de programmation
                                                 Hello world !
C’est bien, mais comment je peux faire un VRAI programme ?
                                           Les pi`ges ` ´viter
                                                 e    ae
                                                   Conclusion




                                          Programmation en C
                                             Pour avr 8 bits

                                          J´r´my Cheynet – INTech
                                           ee
                                          Yann Sionneau – MiNET

                                                  www.club-intech.fr
                                                  clubcode.minet.net
                                                    intlab.minet.net
                                               github.com/leroilion/avr
                                             www.slideshare.net/leroilion34


                                                   14 octobre 2010


         J´r´my Cheynet – INTech Yann Sionneau – MiNET
          ee                                                     Introduction au C avr
Les outils de programmation
                                                 Hello world !
C’est bien, mais comment je peux faire un VRAI programme ?
                                           Les pi`ges ` ´viter
                                                 e    ae
                                                   Conclusion
       1     Les outils de programmation
               Quels sont les outils dont je dispose ?
               Exemple d’utilisation
               A vous de jouer
       2     Hello world !
               Structure d’un port
               Ecrire un 1 ou un 0
               Je te parle
               Tu me parles
               A vous de jouer
       3     C’est bien, mais comment je peux faire un VRAI programme ?
               Qu’est-ce qu’un registe ?
               Le fil rouge
               Le datasheet : la bible du programmateur bas niveau
               Tu me vois, tu me vois plus
               A vous de jouer
       4     Les pi`ges ` ´viter
                   e     ae
           J´r´my Cheynet – INTech Yann Sionneau – MiNET
            ee                                                   Introduction au C avr
Les outils de programmation
                                                 Hello world !   Quels sont les outils dont je dispose ?
C’est bien, mais comment je peux faire un VRAI programme ?       Exemple d’utilisation
                                           Les pi`ges ` ´viter
                                                 e    ae         A vous de jouer
                                                   Conclusion
       1     Les outils de programmation
               Quels sont les outils dont je dispose ?
               Exemple d’utilisation
               A vous de jouer
       2     Hello world !
               Structure d’un port
               Ecrire un 1 ou un 0
               Je te parle
               Tu me parles
               A vous de jouer
       3     C’est bien, mais comment je peux faire un VRAI programme ?
               Qu’est-ce qu’un registe ?
               Le fil rouge
               Le datasheet : la bible du programmateur bas niveau
               Tu me vois, tu me vois plus
               A vous de jouer
       4     Les pi`ges ` ´viter
                   e     ae
           J´r´my Cheynet – INTech Yann Sionneau – MiNET
            ee                                                   Introduction au C avr
Les outils de programmation
                                                 Hello world !   Quels sont les outils dont je dispose ?
C’est bien, mais comment je peux faire un VRAI programme ?       Exemple d’utilisation
                                           Les pi`ges ` ´viter
                                                 e    ae         A vous de jouer
                                                   Conclusion




       Les diff´rents outils
              e
            avr-gcc (pour la compilation)
               avr-objcopy (pour cr´er le fichier hex)
                                   e
               avrdude (pour flasher)




         J´r´my Cheynet – INTech Yann Sionneau – MiNET
          ee                                                     Introduction au C avr
Les outils de programmation
                                                 Hello world !   Quels sont les outils dont je dispose ?
C’est bien, mais comment je peux faire un VRAI programme ?       Exemple d’utilisation
                                           Les pi`ges ` ´viter
                                                 e    ae         A vous de jouer
                                                   Conclusion



       avr-gcc
       avr-gcc -Wall -mmcu=atmega328p -DF CPU=16000000 -c
       myfile1.c
       avr-gcc -Wall -mmcu=atmega328p -DF CPU=16000000 -c
       myfile2.c
       avr-gcc -Wall -mmcu=atmega328p -DF CPU=16000000 myfile1.o
       myfile2.o -o myappli

       avr-objcopy
       avr-objcopy -O ihex -R .eeprom myappli main.hex

       avrdude
       sudo avrdude -P /dev/ttyUSB0 -c stk500v1 -p m328p -b 57600 -D
       -U flash :w :main.hex

         J´r´my Cheynet – INTech Yann Sionneau – MiNET
          ee                                                     Introduction au C avr
Les outils de programmation
                                                 Hello world !   Quels sont les outils dont je dispose ?
C’est bien, mais comment je peux faire un VRAI programme ?       Exemple d’utilisation
                                           Les pi`ges ` ´viter
                                                 e    ae         A vous de jouer
                                                   Conclusion


       T´l´charger les sources
        ee
       http ://github.com/leroilion/avr
       Et t´l´charger dans les exemples le code blink.c
           ee

       Compiler les sources
       avr-gcc -Wall -mmcu=atmega328p -O2 -DF CPU=16000000
       blink.c -o blink.out

       Cr´er le fichier hexad´cimal
         e                  e
       avr-objcopy -O ihex -R .eeprom blink.out blink.hex

       Flasher l’arduino
       sudo avrdude -P /dev/ttyUSB0 -c stk500v1 -p m328p -b 57600 -D
       -U flash :w :blink.hex
       sudo avrdude -c usbtiny -p m328p -U flash :w :blink.hex
         J´r´my Cheynet – INTech Yann Sionneau – MiNET
          ee                                                     Introduction au C avr
Les outils de programmation      Structure d’un port
                                                 Hello world !   Ecrire un 1 ou un 0
C’est bien, mais comment je peux faire un VRAI programme ?       Je te parle
                                           Les pi`ges ` ´viter
                                                 e    ae         Tu me parles
                                                   Conclusion    A vous de jouer
       1     Les outils de programmation
               Quels sont les outils dont je dispose ?
               Exemple d’utilisation
               A vous de jouer
       2     Hello world !
               Structure d’un port
               Ecrire un 1 ou un 0
               Je te parle
               Tu me parles
               A vous de jouer
       3     C’est bien, mais comment je peux faire un VRAI programme ?
               Qu’est-ce qu’un registe ?
               Le fil rouge
               Le datasheet : la bible du programmateur bas niveau
               Tu me vois, tu me vois plus
               A vous de jouer
       4     Les pi`ges ` ´viter
                   e     ae
           J´r´my Cheynet – INTech Yann Sionneau – MiNET
            ee                                                   Introduction au C avr
Les outils de programmation      Structure d’un port
                                                 Hello world !   Ecrire un 1 ou un 0
C’est bien, mais comment je peux faire un VRAI programme ?       Je te parle
                                           Les pi`ges ` ´viter
                                                 e    ae         Tu me parles
                                                   Conclusion    A vous de jouer




       3 registres
            Le registre DDRx
            Registre de configuration du port
               Le registre PORTx
               Registre de sortie du port
               Le registre PINx
               Registre de lecture du port




         J´r´my Cheynet – INTech Yann Sionneau – MiNET
          ee                                                     Introduction au C avr
Les outils de programmation      Structure d’un port
                                                 Hello world !   Ecrire un 1 ou un 0
C’est bien, mais comment je peux faire un VRAI programme ?       Je te parle
                                           Les pi`ges ` ´viter
                                                 e    ae         Tu me parles
                                                   Conclusion    A vous de jouer




       Ecrire un 1 logique
       monport |= ( 1 << monbit ) ;
       #ifndef sbi
       #define sbi(port,bit) (port) |= (1 << (bit))
       #endif

       Ecrire un 0 logique
       monport &= ∼( 1 << monbit ) ;
       #ifndef cbi
       #define cbi(port,bit) (port) &= ∼(1 << (bit))
       #endif



         J´r´my Cheynet – INTech Yann Sionneau – MiNET
          ee                                                     Introduction au C avr
Les outils de programmation      Structure d’un port
                                                 Hello world !   Ecrire un 1 ou un 0
C’est bien, mais comment je peux faire un VRAI programme ?       Je te parle
                                           Les pi`ges ` ´viter
                                                 e    ae         Tu me parles
                                                   Conclusion    A vous de jouer




       Configuration en sortie du port
       DDRB |= ( 1 << PORTB5 ) ;

       Ecriture sur un port
       PORTB |= ( 1 << PORTB5 ) ; //Pour mettre le bit 5 du port B
       `1
       a
       PORTB &= ∼( 1 << PORTB5 ) ; //Pour mettre ` 0
                                                   a




         J´r´my Cheynet – INTech Yann Sionneau – MiNET
          ee                                                     Introduction au C avr
Les outils de programmation      Structure d’un port
                                                 Hello world !   Ecrire un 1 ou un 0
C’est bien, mais comment je peux faire un VRAI programme ?       Je te parle
                                           Les pi`ges ` ´viter
                                                 e    ae         Tu me parles
                                                   Conclusion    A vous de jouer




       Configuration du port en entr´e
                                   e
       DDRx &= ∼( 1 << PORTxN ) ;

       Lecture du port
       PORTx |= ( 1 << PORTxN ) ; //Pour activer le pull–up
       PORTx &= ∼( 1 << PORTxN ) ; //Pour d´sactiver le pull–up
                                                 e
       uint8 t etat = ( PINx & ( 1 << PINxN )) ;




         J´r´my Cheynet – INTech Yann Sionneau – MiNET
          ee                                                     Introduction au C avr
Les outils de programmation      Structure d’un port
                                                 Hello world !   Ecrire un 1 ou un 0
C’est bien, mais comment je peux faire un VRAI programme ?       Je te parle
                                           Les pi`ges ` ´viter
                                                 e    ae         Tu me parles
                                                   Conclusion    A vous de jouer




       Objectif :
       Faire un programme qui ´claire une LED si un bouton est pouss´.
                              e                                     e
       D´tails techniques :
        e
       Utiliser le PORTB5 en sortie (PORTB7 pour arduino mega), et le
       PORTB0 en entr´e.e
       Attention
       Ne pas oublier le int main() dans le fichier principal.
       Penser ` rajouter l’include standard io.h
              a




         J´r´my Cheynet – INTech Yann Sionneau – MiNET
          ee                                                     Introduction au C avr
Les outils de programmation
                                                                 Qu’est-ce qu’un registe ?
                                                 Hello world !
                                                                 Le fil rouge
C’est bien, mais comment je peux faire un VRAI programme ?
                                                                 Le datasheet : la bible du programmateur bas niveau
                                           Les pi`ges ` ´viter
                                                 e    ae
                                                                 A vous de jouer
                                                   Conclusion
      §                                                                                                                ¤
  1   #include <avr/io.h>
  2   int main( void )
  3   {
  4          DDRB |= ( 1 << PORTB5 );
  5          DDRB &= ~( 1 << PORTB0 );
  6          PORTB |= ( 1 << PORTB0 );
  7          while(42)
  8          {
  9                 if( (PINB & ( 1 << PORTB0 )) )
 10                        PORTB |= ( 1 << PORTB5 );
 11                 else
 12                        PORTB &= ~( 1 << PORTB5 );
 13          }
 14          return 0;
 15   }
      ¦
                                                                                                                      ¥


         J´r´my Cheynet – INTech Yann Sionneau – MiNET
          ee                                                     Introduction au C avr
Les outils de programmation
                                                                 Qu’est-ce qu’un registe ?
                                                 Hello world !
                                                                 Le fil rouge
C’est bien, mais comment je peux faire un VRAI programme ?
                                                                 Le datasheet : la bible du programmateur bas niveau
                                           Les pi`ges ` ´viter
                                                 e    ae
                                                                 A vous de jouer
                                                   Conclusion
       1     Les outils de programmation
               Quels sont les outils dont je dispose ?
               Exemple d’utilisation
               A vous de jouer
       2     Hello world !
               Structure d’un port
               Ecrire un 1 ou un 0
               Je te parle
               Tu me parles
               A vous de jouer
       3     C’est bien, mais comment je peux faire un VRAI programme ?
               Qu’est-ce qu’un registe ?
               Le fil rouge
               Le datasheet : la bible du programmateur bas niveau
               Tu me vois, tu me vois plus
               A vous de jouer
       4     Les pi`ges ` ´viter
                   e     ae
           J´r´my Cheynet – INTech Yann Sionneau – MiNET
            ee                                                   Introduction au C avr
Les outils de programmation
                                                                 Qu’est-ce qu’un registe ?
                                                 Hello world !
                                                                 Le fil rouge
C’est bien, mais comment je peux faire un VRAI programme ?
                                                                 Le datasheet : la bible du programmateur bas niveau
                                           Les pi`ges ` ´viter
                                                 e    ae
                                                                 A vous de jouer
                                                   Conclusion




       C’est un octet en m´moire
                          e
       qui permet de configurer le microcontrˆleur.
                                            o

       SREG – AVR Status Register
               I (bit 7) – Global interrupt enable
               T (bit 6) – Copy storage
               H (bit 5) – Half carry
               S (bit 4) – Sign bit
               V (bit 3) – Overflow bit
               N (bit 2) – Negative bit
               Z (bit 1) – Zero bit
               C (bit 0) – Carry

         J´r´my Cheynet – INTech Yann Sionneau – MiNET
          ee                                                     Introduction au C avr
Les outils de programmation
                                                                 Qu’est-ce qu’un registe ?
                                                 Hello world !
                                                                 Le fil rouge
C’est bien, mais comment je peux faire un VRAI programme ?
                                                                 Le datasheet : la bible du programmateur bas niveau
                                           Les pi`ges ` ´viter
                                                 e    ae
                                                                 A vous de jouer
                                                   Conclusion




       Objectif :
       Faire un programme qui fait clignoter une led en utilisant le
       TIMER1 sur 16 bits.
       Pour cela, on fera :
               On activera les interruptions d’overflow du TIMER1
               On fera compter le TIMER1 pour avoir une interruption
               toutes les secondes.
               On regardera l’´tat de la PIN associ´e ` la LED pour le
                              e                    e a
               changer.




         J´r´my Cheynet – INTech Yann Sionneau – MiNET
          ee                                                     Introduction au C avr
Les outils de programmation
                                                                 Qu’est-ce qu’un registe ?
                                                 Hello world !
                                                                 Le fil rouge
C’est bien, mais comment je peux faire un VRAI programme ?
                                                                 Le datasheet : la bible du programmateur bas niveau
                                           Les pi`ges ` ´viter
                                                 e    ae
                                                                 A vous de jouer
                                                   Conclusion




       http ://github.com/leroilion/avr

       TCCR1A – TCCR1B (page 132 – 134)
       Mode normal (WGMx = 0 ), Source d’horloge (CSx = 101), Pas
       de comparaison (COMx = 0)

       TCNT1H – TCNT1L (page 136)
       Incr´mentation toute les 64µs
           e




         J´r´my Cheynet – INTech Yann Sionneau – MiNET
          ee                                                     Introduction au C avr
Les outils de programmation
                                                                 Qu’est-ce qu’un registe ?
                                                 Hello world !
                                                                 Le fil rouge
C’est bien, mais comment je peux faire un VRAI programme ?
                                                                 Le datasheet : la bible du programmateur bas niveau
                                           Les pi`ges ` ´viter
                                                 e    ae
                                                                 A vous de jouer
                                                   Conclusion




       http ://github.com/leroilion/avr

       TCCR1A – TCCR1B (page 132 – 134)
       Mode normal (WGMx = 0 ), Source d’horloge (CSx = 101), Pas
       de comparaison (COMx = 0)

       TCNT1H – TCNT1L (page 136)
       Incr´mentation toute les 64µs =⇒ Compter jusqu’` 15625
           e                                          a




         J´r´my Cheynet – INTech Yann Sionneau – MiNET
          ee                                                     Introduction au C avr
Les outils de programmation
                                                                 Qu’est-ce qu’un registe ?
                                                 Hello world !
                                                                 Le fil rouge
C’est bien, mais comment je peux faire un VRAI programme ?
                                                                 Le datasheet : la bible du programmateur bas niveau
                                           Les pi`ges ` ´viter
                                                 e    ae
                                                                 A vous de jouer
                                                   Conclusion




       http ://github.com/leroilion/avr

       TCCR1A – TCCR1B (page 132 – 134)
       Mode normal (WGMx = 0 ), Source d’horloge (CSx = 101), Pas
       de comparaison (COMx = 0)

       TCNT1H – TCNT1L (page 136)
       Incr´mentation toute les 64µs =⇒ Compter jusqu’` 15625 =⇒
           e                                          a
       Mettre 49910 = 65535 - 15625 dans TCNT.

       TIMSK1 (page 137)
       Activer l’interruption d’overflow



         J´r´my Cheynet – INTech Yann Sionneau – MiNET
          ee                                                     Introduction au C avr
Les outils de programmation
                                                                 Qu’est-ce qu’un registe ?
                                                 Hello world !
                                                                 Le fil rouge
C’est bien, mais comment je peux faire un VRAI programme ?
                                                                 Le datasheet : la bible du programmateur bas niveau
                                           Les pi`ges ` ´viter
                                                 e    ae
                                                                 A vous de jouer
                                                   Conclusion




       http ://github.com/leroilion/avr

       TCCR1A – TCCR1B (page 132 – 134)
       Mode normal (WGMx = 0 ), Source d’horloge (CSx = 101), Pas
       de comparaison (COMx = 0)

       TCNT1H – TCNT1L (page 136)
       Incr´mentation toute les 64µs =⇒ Compter jusqu’` 15625 =⇒
           e                                          a
       Mettre 49910 = 65535 - 15625 dans TCNT.

       TIMSK1 (page 137)
       Activer l’interruption d’overflow =⇒ Activer TOIE1



         J´r´my Cheynet – INTech Yann Sionneau – MiNET
          ee                                                     Introduction au C avr
Les outils de programmation
                                                                 Qu’est-ce qu’un registe ?
                                                 Hello world !
                                                                 Le fil rouge
C’est bien, mais comment je peux faire un VRAI programme ?
                                                                 Le datasheet : la bible du programmateur bas niveau
                                           Les pi`ges ` ´viter
                                                 e    ae
                                                                 A vous de jouer
                                                   Conclusion
      §                                                                                                                ¤
  1   #include avr/io.h
  2   #include avr/interrupt.h
  3   ...
  4   TCCR1A = 0bxxxxxx00;
  5   TCCR1B = 0bxxx00101;
  6   TIMSK1 |= ( 1  TOIE1 );
  7   ...
  8   ISR( TIMER1_OVF_vect)
  9   { ...
      ¦
                                                                                                                      ¥




         J´r´my Cheynet – INTech Yann Sionneau – MiNET
          ee                                                     Introduction au C avr
Les outils de programmation
                                                                 Qu’est-ce qu’un registe ?
                                                 Hello world !
                                                                 Le fil rouge
C’est bien, mais comment je peux faire un VRAI programme ?
                                                                 Le datasheet : la bible du programmateur bas niveau
                                           Les pi`ges ` ´viter
                                                 e    ae
                                                                 A vous de jouer
                                                   Conclusion




       Objectif :
       Faire un programme qui permet de contrˆler la luminosit´ d’une
                                             o                e
       LED en utilisant le PWM.
       D´tails techniques :
        e
               Utiliser le port B5 pour la sortie de la LED (PORTB7 pour
               arduino mega).
               Utiliser le TIMER de votre choix en mode PWM

       Attention
       Ne pas oublier l’include avr/interrupt.h
       Penser ` g´rer TOUS les vecteurs d’interruption
              a e



         J´r´my Cheynet – INTech Yann Sionneau – MiNET
          ee                                                     Introduction au C avr
Les outils de programmation
                                                 Hello world !
C’est bien, mais comment je peux faire un VRAI programme ?
                                           Les pi`ges ` ´viter
                                                 e    ae
                                                   Conclusion




       Les pi`ges
             e
            ´
            Economiser la m´moire (probl`me de la pile)
                           e            e
               Faire attention avec les float, les . et les double
               ´
               Economiser la puissance de calcul (calcul en 8 bits)
               Faire attention ` l’overflow
                               a
               Rajouter l’option volatile devant les variables




         J´r´my Cheynet – INTech Yann Sionneau – MiNET
          ee                                                     Introduction au C avr
Les outils de programmation
                                                 Hello world !
C’est bien, mais comment je peux faire un VRAI programme ?
                                           Les pi`ges ` ´viter
                                                 e    ae
                                                   Conclusion




       Nous avons vu :
               Les outils de programmation
               Ce qu’est un registre, et comment le configurer ` l’aide du
                                                              a
               datasheet
               L’utilisation des interruptions
       Des exemples simple :
               http ://github.com/leroilion/avr
       Bibliographie :
               Microcontrˆleurs AVR : des ATtiny aux ATmega de Christian
                         o
               Tavernier



         J´r´my Cheynet – INTech Yann Sionneau – MiNET
          ee                                                     Introduction au C avr

Contenu connexe

Tendances

Cours d'électronique
Cours d'électroniqueCours d'électronique
Cours d'électronique
Raja Birje
 
prc3a9sentation-de-scratch (1).ppt
prc3a9sentation-de-scratch (1).pptprc3a9sentation-de-scratch (1).ppt
prc3a9sentation-de-scratch (1).ppt
PROFPROF11
 
Cours robotique complet
Cours robotique completCours robotique complet
Cours robotique complet
Mouna Souissi
 
Chapitre ii architecture interne des processeurs
Chapitre ii architecture interne des processeursChapitre ii architecture interne des processeurs
Chapitre ii architecture interne des processeurs
Sana Aroussi
 
08 automates programmables
08 automates programmables08 automates programmables
08 automates programmables
badr zaimi
 
Le grafcet cours & exercices corrigés
Le grafcet cours & exercices corrigésLe grafcet cours & exercices corrigés
Le grafcet cours & exercices corrigés
toumed
 
Notes de cours sur le microcontrôleur PIC16F84 BADR DIDOUH FSTF.pdf
Notes de cours sur le microcontrôleur PIC16F84 BADR DIDOUH FSTF.pdfNotes de cours sur le microcontrôleur PIC16F84 BADR DIDOUH FSTF.pdf
Notes de cours sur le microcontrôleur PIC16F84 BADR DIDOUH FSTF.pdf
IMADABOUDRAR1
 

Tendances (20)

Microcontroleurs
MicrocontroleursMicrocontroleurs
Microcontroleurs
 
Diode & Diode Zener : Exercices Corrigés
Diode & Diode Zener : Exercices CorrigésDiode & Diode Zener : Exercices Corrigés
Diode & Diode Zener : Exercices Corrigés
 
Cours d'électronique
Cours d'électroniqueCours d'électronique
Cours d'électronique
 
utilisation de MATLAB dans l'asservissement.pdf
utilisation de MATLAB dans l'asservissement.pdfutilisation de MATLAB dans l'asservissement.pdf
utilisation de MATLAB dans l'asservissement.pdf
 
Codeur rizki
Codeur rizkiCodeur rizki
Codeur rizki
 
prc3a9sentation-de-scratch (1).ppt
prc3a9sentation-de-scratch (1).pptprc3a9sentation-de-scratch (1).ppt
prc3a9sentation-de-scratch (1).ppt
 
Soutenance projet LABVIEW
Soutenance projet LABVIEWSoutenance projet LABVIEW
Soutenance projet LABVIEW
 
Cours robotique complet
Cours robotique completCours robotique complet
Cours robotique complet
 
Chapitre ii architecture interne des processeurs
Chapitre ii architecture interne des processeursChapitre ii architecture interne des processeurs
Chapitre ii architecture interne des processeurs
 
Systèmes de logiques séquentielles-Bascules
Systèmes de logiques séquentielles-BasculesSystèmes de logiques séquentielles-Bascules
Systèmes de logiques séquentielles-Bascules
 
Les composants de l'ordinateur
Les composants de l'ordinateurLes composants de l'ordinateur
Les composants de l'ordinateur
 
08 automates programmables
08 automates programmables08 automates programmables
08 automates programmables
 
Le grafcet cours & exercices corrigés
Le grafcet cours & exercices corrigésLe grafcet cours & exercices corrigés
Le grafcet cours & exercices corrigés
 
Conception avec pic
Conception avec pic Conception avec pic
Conception avec pic
 
3 identification des systèmes
3 identification des systèmes3 identification des systèmes
3 identification des systèmes
 
Cours pics16 f877
Cours pics16 f877Cours pics16 f877
Cours pics16 f877
 
Notes de cours sur le microcontrôleur PIC16F84 BADR DIDOUH FSTF.pdf
Notes de cours sur le microcontrôleur PIC16F84 BADR DIDOUH FSTF.pdfNotes de cours sur le microcontrôleur PIC16F84 BADR DIDOUH FSTF.pdf
Notes de cours sur le microcontrôleur PIC16F84 BADR DIDOUH FSTF.pdf
 
Cours algorithmique02
Cours algorithmique02Cours algorithmique02
Cours algorithmique02
 
تمارين وحلول خاصة ببرمجة Ladder et instructions automates
تمارين وحلول خاصة ببرمجة Ladder et instructions automatesتمارين وحلول خاصة ببرمجة Ladder et instructions automates
تمارين وحلول خاصة ببرمجة Ladder et instructions automates
 
Fondamentaux financiers
Fondamentaux financiersFondamentaux financiers
Fondamentaux financiers
 

En vedette

Etat agriculture urbaine arrondissement ville-marie
Etat agriculture urbaine arrondissement ville-marieEtat agriculture urbaine arrondissement ville-marie
Etat agriculture urbaine arrondissement ville-marie
Louis-Alexandre Cazal
 
Mettreenplaceunestrategiewebmarketing 150115102019-conversion-gate01 (1)
Mettreenplaceunestrategiewebmarketing 150115102019-conversion-gate01 (1)Mettreenplaceunestrategiewebmarketing 150115102019-conversion-gate01 (1)
Mettreenplaceunestrategiewebmarketing 150115102019-conversion-gate01 (1)
Claude-Diane Bergeron
 
Etat de l'agriculture urbaine à Montréal - Présentation arrondissement pierre...
Etat de l'agriculture urbaine à Montréal - Présentation arrondissement pierre...Etat de l'agriculture urbaine à Montréal - Présentation arrondissement pierre...
Etat de l'agriculture urbaine à Montréal - Présentation arrondissement pierre...
Louis-Alexandre Cazal
 
Mi empresa
Mi empresaMi empresa
Mi empresa
josue
 
Assises du Tourisme 2009 - H. Germain, ALT Hotels
Assises du Tourisme 2009 - H. Germain, ALT HotelsAssises du Tourisme 2009 - H. Germain, ALT Hotels
Assises du Tourisme 2009 - H. Germain, ALT Hotels
fgchevrier
 

En vedette (20)

Formation en robotique
Formation en robotiqueFormation en robotique
Formation en robotique
 
Robotique
RobotiqueRobotique
Robotique
 
Afficheur 7 segments
Afficheur 7 segmentsAfficheur 7 segments
Afficheur 7 segments
 
Initiation à La Robotique NXT
Initiation à La Robotique NXTInitiation à La Robotique NXT
Initiation à La Robotique NXT
 
Mini projet 3t2i se
Mini projet 3t2i seMini projet 3t2i se
Mini projet 3t2i se
 
Etat agriculture urbaine arrondissement ville-marie
Etat agriculture urbaine arrondissement ville-marieEtat agriculture urbaine arrondissement ville-marie
Etat agriculture urbaine arrondissement ville-marie
 
Plan de estudios 2011 educacion basica
Plan de estudios 2011 educacion basicaPlan de estudios 2011 educacion basica
Plan de estudios 2011 educacion basica
 
Diapo médiathèque
Diapo médiathèqueDiapo médiathèque
Diapo médiathèque
 
Ganatura
GanaturaGanatura
Ganatura
 
Jeu sur l'intégration continue - Partie 1 Traditional
Jeu sur l'intégration continue - Partie 1 TraditionalJeu sur l'intégration continue - Partie 1 Traditional
Jeu sur l'intégration continue - Partie 1 Traditional
 
08 la-vie-tendre-et-insolites
08 la-vie-tendre-et-insolites08 la-vie-tendre-et-insolites
08 la-vie-tendre-et-insolites
 
Mettreenplaceunestrategiewebmarketing 150115102019-conversion-gate01 (1)
Mettreenplaceunestrategiewebmarketing 150115102019-conversion-gate01 (1)Mettreenplaceunestrategiewebmarketing 150115102019-conversion-gate01 (1)
Mettreenplaceunestrategiewebmarketing 150115102019-conversion-gate01 (1)
 
Etat de l'agriculture urbaine à Montréal - Présentation arrondissement pierre...
Etat de l'agriculture urbaine à Montréal - Présentation arrondissement pierre...Etat de l'agriculture urbaine à Montréal - Présentation arrondissement pierre...
Etat de l'agriculture urbaine à Montréal - Présentation arrondissement pierre...
 
Un africain un arbre au Niger et partout en Afrique et dans le Monde.
Un africain un arbre au Niger et partout en Afrique et dans le Monde.Un africain un arbre au Niger et partout en Afrique et dans le Monde.
Un africain un arbre au Niger et partout en Afrique et dans le Monde.
 
C2I2E
C2I2EC2I2E
C2I2E
 
Mi empresa
Mi empresaMi empresa
Mi empresa
 
Tennis - présentation ville
Tennis - présentation villeTennis - présentation ville
Tennis - présentation ville
 
Catalogues et outils de recherche pour les ressources documentaires à l’ULg ...
 Catalogues et outils de recherche pour les ressources documentaires à l’ULg ... Catalogues et outils de recherche pour les ressources documentaires à l’ULg ...
Catalogues et outils de recherche pour les ressources documentaires à l’ULg ...
 
Artes Rupestre
Artes RupestreArtes Rupestre
Artes Rupestre
 
Assises du Tourisme 2009 - H. Germain, ALT Hotels
Assises du Tourisme 2009 - H. Germain, ALT HotelsAssises du Tourisme 2009 - H. Germain, ALT Hotels
Assises du Tourisme 2009 - H. Germain, ALT Hotels
 

Similaire à Programmation en C sur microcontrôleur avr

Petit guide des possibilités d'utilisation du logiciel scratch en technologie
Petit guide des possibilités d'utilisation du logiciel scratch en technologiePetit guide des possibilités d'utilisation du logiciel scratch en technologie
Petit guide des possibilités d'utilisation du logiciel scratch en technologie
خالد المشكوري
 
Programmation-en-C-ESIITECH-2023-2024.pptx
Programmation-en-C-ESIITECH-2023-2024.pptxProgrammation-en-C-ESIITECH-2023-2024.pptx
Programmation-en-C-ESIITECH-2023-2024.pptx
OlyvierNzighou1
 
Theme1 (1)
Theme1 (1)Theme1 (1)
Theme1 (1)
salmazen
 

Similaire à Programmation en C sur microcontrôleur avr (20)

Programmation C pour AVR 8 bits
Programmation C pour AVR 8 bitsProgrammation C pour AVR 8 bits
Programmation C pour AVR 8 bits
 
Petit guide des possibilités d'utilisation du logiciel scratch en technologie
Petit guide des possibilités d'utilisation du logiciel scratch en technologiePetit guide des possibilités d'utilisation du logiciel scratch en technologie
Petit guide des possibilités d'utilisation du logiciel scratch en technologie
 
Algorythmes et programmation
Algorythmes et programmationAlgorythmes et programmation
Algorythmes et programmation
 
Support Formation Samsung - Python - Session 1 - 2022.pptx
Support Formation Samsung - Python - Session 1 - 2022.pptxSupport Formation Samsung - Python - Session 1 - 2022.pptx
Support Formation Samsung - Python - Session 1 - 2022.pptx
 
Programmation-en-C-ESIITECH-2023-2024-bis.pptx
Programmation-en-C-ESIITECH-2023-2024-bis.pptxProgrammation-en-C-ESIITECH-2023-2024-bis.pptx
Programmation-en-C-ESIITECH-2023-2024-bis.pptx
 
Programmation-en-C-ESIITECH-2023-2024.pptx
Programmation-en-C-ESIITECH-2023-2024.pptxProgrammation-en-C-ESIITECH-2023-2024.pptx
Programmation-en-C-ESIITECH-2023-2024.pptx
 
Fiche TD sur les systèmes informatiques
Fiche TD sur les systèmes informatiquesFiche TD sur les systèmes informatiques
Fiche TD sur les systèmes informatiques
 
presentation_arduino.pdf
presentation_arduino.pdfpresentation_arduino.pdf
presentation_arduino.pdf
 
Pyconfr2015 : Marre de faire du C++ sur une Arduino ? Faites du Python avec M...
Pyconfr2015 : Marre de faire du C++ sur une Arduino ? Faites du Python avec M...Pyconfr2015 : Marre de faire du C++ sur une Arduino ? Faites du Python avec M...
Pyconfr2015 : Marre de faire du C++ sur une Arduino ? Faites du Python avec M...
 
Theme1 (1)
Theme1 (1)Theme1 (1)
Theme1 (1)
 
Machine-learning-FR.pdf
Machine-learning-FR.pdfMachine-learning-FR.pdf
Machine-learning-FR.pdf
 
Le tbi
Le tbiLe tbi
Le tbi
 
Atelier robotique
Atelier robotiqueAtelier robotique
Atelier robotique
 
Introduction&composants
Introduction&composantsIntroduction&composants
Introduction&composants
 
Fusioninventory journees-perl-2012
Fusioninventory journees-perl-2012Fusioninventory journees-perl-2012
Fusioninventory journees-perl-2012
 
Software Craftsmanship : en Pratique - AgileTour
Software Craftsmanship : en Pratique - AgileTourSoftware Craftsmanship : en Pratique - AgileTour
Software Craftsmanship : en Pratique - AgileTour
 
Programation système-CHAPITRE1.pptx
Programation système-CHAPITRE1.pptxProgramation système-CHAPITRE1.pptx
Programation système-CHAPITRE1.pptx
 
sys.pdf
sys.pdfsys.pdf
sys.pdf
 
Guide d'activité PRIMO - Fréquence Écoles
Guide d'activité PRIMO - Fréquence ÉcolesGuide d'activité PRIMO - Fréquence Écoles
Guide d'activité PRIMO - Fréquence Écoles
 
manuel-de-cours-culture-et-techniques-avancees-du-numerique-2eme-annee-31-08-...
manuel-de-cours-culture-et-techniques-avancees-du-numerique-2eme-annee-31-08-...manuel-de-cours-culture-et-techniques-avancees-du-numerique-2eme-annee-31-08-...
manuel-de-cours-culture-et-techniques-avancees-du-numerique-2eme-annee-31-08-...
 

Programmation en C sur microcontrôleur avr

  • 1. Les outils de programmation Hello world ! C’est bien, mais comment je peux faire un VRAI programme ? Les pi`ges ` ´viter e ae Conclusion Programmation en C Pour avr 8 bits J´r´my Cheynet – INTech ee Yann Sionneau – MiNET www.club-intech.fr clubcode.minet.net intlab.minet.net github.com/leroilion/avr www.slideshare.net/leroilion34 14 octobre 2010 J´r´my Cheynet – INTech Yann Sionneau – MiNET ee Introduction au C avr
  • 2. Les outils de programmation Hello world ! C’est bien, mais comment je peux faire un VRAI programme ? Les pi`ges ` ´viter e ae Conclusion 1 Les outils de programmation Quels sont les outils dont je dispose ? Exemple d’utilisation A vous de jouer 2 Hello world ! Structure d’un port Ecrire un 1 ou un 0 Je te parle Tu me parles A vous de jouer 3 C’est bien, mais comment je peux faire un VRAI programme ? Qu’est-ce qu’un registe ? Le fil rouge Le datasheet : la bible du programmateur bas niveau Tu me vois, tu me vois plus A vous de jouer 4 Les pi`ges ` ´viter e ae J´r´my Cheynet – INTech Yann Sionneau – MiNET ee Introduction au C avr
  • 3. Les outils de programmation Hello world ! Quels sont les outils dont je dispose ? C’est bien, mais comment je peux faire un VRAI programme ? Exemple d’utilisation Les pi`ges ` ´viter e ae A vous de jouer Conclusion 1 Les outils de programmation Quels sont les outils dont je dispose ? Exemple d’utilisation A vous de jouer 2 Hello world ! Structure d’un port Ecrire un 1 ou un 0 Je te parle Tu me parles A vous de jouer 3 C’est bien, mais comment je peux faire un VRAI programme ? Qu’est-ce qu’un registe ? Le fil rouge Le datasheet : la bible du programmateur bas niveau Tu me vois, tu me vois plus A vous de jouer 4 Les pi`ges ` ´viter e ae J´r´my Cheynet – INTech Yann Sionneau – MiNET ee Introduction au C avr
  • 4. Les outils de programmation Hello world ! Quels sont les outils dont je dispose ? C’est bien, mais comment je peux faire un VRAI programme ? Exemple d’utilisation Les pi`ges ` ´viter e ae A vous de jouer Conclusion Les diff´rents outils e avr-gcc (pour la compilation) avr-objcopy (pour cr´er le fichier hex) e avrdude (pour flasher) J´r´my Cheynet – INTech Yann Sionneau – MiNET ee Introduction au C avr
  • 5. Les outils de programmation Hello world ! Quels sont les outils dont je dispose ? C’est bien, mais comment je peux faire un VRAI programme ? Exemple d’utilisation Les pi`ges ` ´viter e ae A vous de jouer Conclusion avr-gcc avr-gcc -Wall -mmcu=atmega328p -DF CPU=16000000 -c myfile1.c avr-gcc -Wall -mmcu=atmega328p -DF CPU=16000000 -c myfile2.c avr-gcc -Wall -mmcu=atmega328p -DF CPU=16000000 myfile1.o myfile2.o -o myappli avr-objcopy avr-objcopy -O ihex -R .eeprom myappli main.hex avrdude sudo avrdude -P /dev/ttyUSB0 -c stk500v1 -p m328p -b 57600 -D -U flash :w :main.hex J´r´my Cheynet – INTech Yann Sionneau – MiNET ee Introduction au C avr
  • 6. Les outils de programmation Hello world ! Quels sont les outils dont je dispose ? C’est bien, mais comment je peux faire un VRAI programme ? Exemple d’utilisation Les pi`ges ` ´viter e ae A vous de jouer Conclusion T´l´charger les sources ee http ://github.com/leroilion/avr Et t´l´charger dans les exemples le code blink.c ee Compiler les sources avr-gcc -Wall -mmcu=atmega328p -O2 -DF CPU=16000000 blink.c -o blink.out Cr´er le fichier hexad´cimal e e avr-objcopy -O ihex -R .eeprom blink.out blink.hex Flasher l’arduino sudo avrdude -P /dev/ttyUSB0 -c stk500v1 -p m328p -b 57600 -D -U flash :w :blink.hex sudo avrdude -c usbtiny -p m328p -U flash :w :blink.hex J´r´my Cheynet – INTech Yann Sionneau – MiNET ee Introduction au C avr
  • 7. Les outils de programmation Structure d’un port Hello world ! Ecrire un 1 ou un 0 C’est bien, mais comment je peux faire un VRAI programme ? Je te parle Les pi`ges ` ´viter e ae Tu me parles Conclusion A vous de jouer 1 Les outils de programmation Quels sont les outils dont je dispose ? Exemple d’utilisation A vous de jouer 2 Hello world ! Structure d’un port Ecrire un 1 ou un 0 Je te parle Tu me parles A vous de jouer 3 C’est bien, mais comment je peux faire un VRAI programme ? Qu’est-ce qu’un registe ? Le fil rouge Le datasheet : la bible du programmateur bas niveau Tu me vois, tu me vois plus A vous de jouer 4 Les pi`ges ` ´viter e ae J´r´my Cheynet – INTech Yann Sionneau – MiNET ee Introduction au C avr
  • 8. Les outils de programmation Structure d’un port Hello world ! Ecrire un 1 ou un 0 C’est bien, mais comment je peux faire un VRAI programme ? Je te parle Les pi`ges ` ´viter e ae Tu me parles Conclusion A vous de jouer 3 registres Le registre DDRx Registre de configuration du port Le registre PORTx Registre de sortie du port Le registre PINx Registre de lecture du port J´r´my Cheynet – INTech Yann Sionneau – MiNET ee Introduction au C avr
  • 9. Les outils de programmation Structure d’un port Hello world ! Ecrire un 1 ou un 0 C’est bien, mais comment je peux faire un VRAI programme ? Je te parle Les pi`ges ` ´viter e ae Tu me parles Conclusion A vous de jouer Ecrire un 1 logique monport |= ( 1 << monbit ) ; #ifndef sbi #define sbi(port,bit) (port) |= (1 << (bit)) #endif Ecrire un 0 logique monport &= ∼( 1 << monbit ) ; #ifndef cbi #define cbi(port,bit) (port) &= ∼(1 << (bit)) #endif J´r´my Cheynet – INTech Yann Sionneau – MiNET ee Introduction au C avr
  • 10. Les outils de programmation Structure d’un port Hello world ! Ecrire un 1 ou un 0 C’est bien, mais comment je peux faire un VRAI programme ? Je te parle Les pi`ges ` ´viter e ae Tu me parles Conclusion A vous de jouer Configuration en sortie du port DDRB |= ( 1 << PORTB5 ) ; Ecriture sur un port PORTB |= ( 1 << PORTB5 ) ; //Pour mettre le bit 5 du port B `1 a PORTB &= ∼( 1 << PORTB5 ) ; //Pour mettre ` 0 a J´r´my Cheynet – INTech Yann Sionneau – MiNET ee Introduction au C avr
  • 11. Les outils de programmation Structure d’un port Hello world ! Ecrire un 1 ou un 0 C’est bien, mais comment je peux faire un VRAI programme ? Je te parle Les pi`ges ` ´viter e ae Tu me parles Conclusion A vous de jouer Configuration du port en entr´e e DDRx &= ∼( 1 << PORTxN ) ; Lecture du port PORTx |= ( 1 << PORTxN ) ; //Pour activer le pull–up PORTx &= ∼( 1 << PORTxN ) ; //Pour d´sactiver le pull–up e uint8 t etat = ( PINx & ( 1 << PINxN )) ; J´r´my Cheynet – INTech Yann Sionneau – MiNET ee Introduction au C avr
  • 12. Les outils de programmation Structure d’un port Hello world ! Ecrire un 1 ou un 0 C’est bien, mais comment je peux faire un VRAI programme ? Je te parle Les pi`ges ` ´viter e ae Tu me parles Conclusion A vous de jouer Objectif : Faire un programme qui ´claire une LED si un bouton est pouss´. e e D´tails techniques : e Utiliser le PORTB5 en sortie (PORTB7 pour arduino mega), et le PORTB0 en entr´e.e Attention Ne pas oublier le int main() dans le fichier principal. Penser ` rajouter l’include standard io.h a J´r´my Cheynet – INTech Yann Sionneau – MiNET ee Introduction au C avr
  • 13. Les outils de programmation Qu’est-ce qu’un registe ? Hello world ! Le fil rouge C’est bien, mais comment je peux faire un VRAI programme ? Le datasheet : la bible du programmateur bas niveau Les pi`ges ` ´viter e ae A vous de jouer Conclusion § ¤ 1 #include <avr/io.h> 2 int main( void ) 3 { 4 DDRB |= ( 1 << PORTB5 ); 5 DDRB &= ~( 1 << PORTB0 ); 6 PORTB |= ( 1 << PORTB0 ); 7 while(42) 8 { 9 if( (PINB & ( 1 << PORTB0 )) ) 10 PORTB |= ( 1 << PORTB5 ); 11 else 12 PORTB &= ~( 1 << PORTB5 ); 13 } 14 return 0; 15 } ¦ ¥ J´r´my Cheynet – INTech Yann Sionneau – MiNET ee Introduction au C avr
  • 14. Les outils de programmation Qu’est-ce qu’un registe ? Hello world ! Le fil rouge C’est bien, mais comment je peux faire un VRAI programme ? Le datasheet : la bible du programmateur bas niveau Les pi`ges ` ´viter e ae A vous de jouer Conclusion 1 Les outils de programmation Quels sont les outils dont je dispose ? Exemple d’utilisation A vous de jouer 2 Hello world ! Structure d’un port Ecrire un 1 ou un 0 Je te parle Tu me parles A vous de jouer 3 C’est bien, mais comment je peux faire un VRAI programme ? Qu’est-ce qu’un registe ? Le fil rouge Le datasheet : la bible du programmateur bas niveau Tu me vois, tu me vois plus A vous de jouer 4 Les pi`ges ` ´viter e ae J´r´my Cheynet – INTech Yann Sionneau – MiNET ee Introduction au C avr
  • 15. Les outils de programmation Qu’est-ce qu’un registe ? Hello world ! Le fil rouge C’est bien, mais comment je peux faire un VRAI programme ? Le datasheet : la bible du programmateur bas niveau Les pi`ges ` ´viter e ae A vous de jouer Conclusion C’est un octet en m´moire e qui permet de configurer le microcontrˆleur. o SREG – AVR Status Register I (bit 7) – Global interrupt enable T (bit 6) – Copy storage H (bit 5) – Half carry S (bit 4) – Sign bit V (bit 3) – Overflow bit N (bit 2) – Negative bit Z (bit 1) – Zero bit C (bit 0) – Carry J´r´my Cheynet – INTech Yann Sionneau – MiNET ee Introduction au C avr
  • 16. Les outils de programmation Qu’est-ce qu’un registe ? Hello world ! Le fil rouge C’est bien, mais comment je peux faire un VRAI programme ? Le datasheet : la bible du programmateur bas niveau Les pi`ges ` ´viter e ae A vous de jouer Conclusion Objectif : Faire un programme qui fait clignoter une led en utilisant le TIMER1 sur 16 bits. Pour cela, on fera : On activera les interruptions d’overflow du TIMER1 On fera compter le TIMER1 pour avoir une interruption toutes les secondes. On regardera l’´tat de la PIN associ´e ` la LED pour le e e a changer. J´r´my Cheynet – INTech Yann Sionneau – MiNET ee Introduction au C avr
  • 17. Les outils de programmation Qu’est-ce qu’un registe ? Hello world ! Le fil rouge C’est bien, mais comment je peux faire un VRAI programme ? Le datasheet : la bible du programmateur bas niveau Les pi`ges ` ´viter e ae A vous de jouer Conclusion http ://github.com/leroilion/avr TCCR1A – TCCR1B (page 132 – 134) Mode normal (WGMx = 0 ), Source d’horloge (CSx = 101), Pas de comparaison (COMx = 0) TCNT1H – TCNT1L (page 136) Incr´mentation toute les 64µs e J´r´my Cheynet – INTech Yann Sionneau – MiNET ee Introduction au C avr
  • 18. Les outils de programmation Qu’est-ce qu’un registe ? Hello world ! Le fil rouge C’est bien, mais comment je peux faire un VRAI programme ? Le datasheet : la bible du programmateur bas niveau Les pi`ges ` ´viter e ae A vous de jouer Conclusion http ://github.com/leroilion/avr TCCR1A – TCCR1B (page 132 – 134) Mode normal (WGMx = 0 ), Source d’horloge (CSx = 101), Pas de comparaison (COMx = 0) TCNT1H – TCNT1L (page 136) Incr´mentation toute les 64µs =⇒ Compter jusqu’` 15625 e a J´r´my Cheynet – INTech Yann Sionneau – MiNET ee Introduction au C avr
  • 19. Les outils de programmation Qu’est-ce qu’un registe ? Hello world ! Le fil rouge C’est bien, mais comment je peux faire un VRAI programme ? Le datasheet : la bible du programmateur bas niveau Les pi`ges ` ´viter e ae A vous de jouer Conclusion http ://github.com/leroilion/avr TCCR1A – TCCR1B (page 132 – 134) Mode normal (WGMx = 0 ), Source d’horloge (CSx = 101), Pas de comparaison (COMx = 0) TCNT1H – TCNT1L (page 136) Incr´mentation toute les 64µs =⇒ Compter jusqu’` 15625 =⇒ e a Mettre 49910 = 65535 - 15625 dans TCNT. TIMSK1 (page 137) Activer l’interruption d’overflow J´r´my Cheynet – INTech Yann Sionneau – MiNET ee Introduction au C avr
  • 20. Les outils de programmation Qu’est-ce qu’un registe ? Hello world ! Le fil rouge C’est bien, mais comment je peux faire un VRAI programme ? Le datasheet : la bible du programmateur bas niveau Les pi`ges ` ´viter e ae A vous de jouer Conclusion http ://github.com/leroilion/avr TCCR1A – TCCR1B (page 132 – 134) Mode normal (WGMx = 0 ), Source d’horloge (CSx = 101), Pas de comparaison (COMx = 0) TCNT1H – TCNT1L (page 136) Incr´mentation toute les 64µs =⇒ Compter jusqu’` 15625 =⇒ e a Mettre 49910 = 65535 - 15625 dans TCNT. TIMSK1 (page 137) Activer l’interruption d’overflow =⇒ Activer TOIE1 J´r´my Cheynet – INTech Yann Sionneau – MiNET ee Introduction au C avr
  • 21. Les outils de programmation Qu’est-ce qu’un registe ? Hello world ! Le fil rouge C’est bien, mais comment je peux faire un VRAI programme ? Le datasheet : la bible du programmateur bas niveau Les pi`ges ` ´viter e ae A vous de jouer Conclusion § ¤ 1 #include avr/io.h 2 #include avr/interrupt.h 3 ... 4 TCCR1A = 0bxxxxxx00; 5 TCCR1B = 0bxxx00101; 6 TIMSK1 |= ( 1 TOIE1 ); 7 ... 8 ISR( TIMER1_OVF_vect) 9 { ... ¦ ¥ J´r´my Cheynet – INTech Yann Sionneau – MiNET ee Introduction au C avr
  • 22. Les outils de programmation Qu’est-ce qu’un registe ? Hello world ! Le fil rouge C’est bien, mais comment je peux faire un VRAI programme ? Le datasheet : la bible du programmateur bas niveau Les pi`ges ` ´viter e ae A vous de jouer Conclusion Objectif : Faire un programme qui permet de contrˆler la luminosit´ d’une o e LED en utilisant le PWM. D´tails techniques : e Utiliser le port B5 pour la sortie de la LED (PORTB7 pour arduino mega). Utiliser le TIMER de votre choix en mode PWM Attention Ne pas oublier l’include avr/interrupt.h Penser ` g´rer TOUS les vecteurs d’interruption a e J´r´my Cheynet – INTech Yann Sionneau – MiNET ee Introduction au C avr
  • 23. Les outils de programmation Hello world ! C’est bien, mais comment je peux faire un VRAI programme ? Les pi`ges ` ´viter e ae Conclusion Les pi`ges e ´ Economiser la m´moire (probl`me de la pile) e e Faire attention avec les float, les . et les double ´ Economiser la puissance de calcul (calcul en 8 bits) Faire attention ` l’overflow a Rajouter l’option volatile devant les variables J´r´my Cheynet – INTech Yann Sionneau – MiNET ee Introduction au C avr
  • 24. Les outils de programmation Hello world ! C’est bien, mais comment je peux faire un VRAI programme ? Les pi`ges ` ´viter e ae Conclusion Nous avons vu : Les outils de programmation Ce qu’est un registre, et comment le configurer ` l’aide du a datasheet L’utilisation des interruptions Des exemples simple : http ://github.com/leroilion/avr Bibliographie : Microcontrˆleurs AVR : des ATtiny aux ATmega de Christian o Tavernier J´r´my Cheynet – INTech Yann Sionneau – MiNET ee Introduction au C avr