Les outils de programmation                                                 Hello world !C’est bien, mais comment je peux ...
Les outils de programmation                                                 Hello world !C’est bien, mais comment je peux ...
Les outils de programmation                                                 Hello world !   Quels sont les outils dont je ...
Les outils de programmation                                                 Hello world !   Quels sont les outils dont je ...
Les outils de programmation                                                 Hello world !   Quels sont les outils dont je ...
Les outils de programmation                                                 Hello world !   Quels sont les outils dont je ...
Les outils de programmation                                                 Hello world !   Quels sont les outils dont je ...
Les outils de programmation                                                 Hello world !   Quels sont les outils dont je ...
Les outils de programmation                                                 Hello world !   Quels sont les outils dont je ...
Les outils de programmation                                                 Hello world !   Quels sont les outils dont je ...
Les outils de programmation                                                 Hello world !   Quels sont les outils dont je ...
Les outils de programmation                                                 Hello world !   Quels sont les outils dont je ...
Les outils de programmation                                                 Hello world !   Quels sont les outils dont je ...
Les outils de programmation                                                 Hello world !   Quels sont les outils dont je ...
Les outils de programmation                                                 Hello world !   Quels sont les outils dont je ...
Les outils de programmation                                                 Hello world !   Quels sont les outils dont je ...
Les outils de programmation                                                 Hello world !   Quels sont les outils dont je ...
Les outils de programmation                                                 Hello world !   Quels sont les outils dont je ...
Les outils de programmation                                                 Hello world !   Quels sont les outils dont je ...
Les outils de programmation                                                 Hello world !   Quels sont les outils dont je ...
Les outils de programmation                                                 Hello world !   Quels sont les outils dont je ...
Les outils de programmation                                                 Hello world !   Quels sont les outils dont je ...
Les outils de programmation                                                 Hello world !   Quels sont les outils dont je ...
Les outils de programmation      Structure d’un port                                                 Hello world !   Ecrir...
Les outils de programmation      Structure d’un port                                                 Hello world !   Ecrir...
Les outils de programmation      Structure d’un port                                                 Hello world !   Ecrir...
Les outils de programmation      Structure d’un port                                                 Hello world !   Ecrir...
Les outils de programmation      Structure d’un port                                                 Hello world !   Ecrir...
Les outils de programmation      Structure d’un port                                                 Hello world !   Ecrir...
Les outils de programmation      Structure d’un port                                                 Hello world !   Ecrir...
Les outils de programmation      Structure d’un port                                                 Hello world !   Ecrir...
Les outils de programmation      Structure d’un port                                                 Hello world !   Ecrir...
Les outils de programmation      Structure d’un port                                                 Hello world !   Ecrir...
Les outils de programmation      Structure d’un port                                                 Hello world !   Ecrir...
Les outils de programmation      Structure d’un port                                                 Hello world !   Ecrir...
Les outils de programmation      Structure d’un port                                                 Hello world !   Ecrir...
Les outils de programmation      Structure d’un port                                                 Hello world !   Ecrir...
Les outils de programmation      Structure d’un port                                                 Hello world !   Ecrir...
Les outils de programmation      Structure d’un port                                                 Hello world !   Ecrir...
Les outils de programmation      Structure d’un port                                                 Hello world !   Ecrir...
Les outils de programmation      Structure d’un port                                                 Hello world !   Ecrir...
Les outils de programmation      Structure d’un port                                                 Hello world !   Ecrir...
Les outils de programmation      Structure d’un port                                                 Hello world !   Ecrir...
Les outils de programmation      Structure d’un port                                                 Hello world !   Ecrir...
Les outils de programmation      Structure d’un port                                                 Hello world !   Ecrir...
Les outils de programmation      Structure d’un port                                                 Hello world !   Ecrir...
Les outils de programmation      Structure d’un port                                                 Hello world !   Ecrir...
Les outils de programmation      Structure d’un port                                                 Hello world !   Ecrir...
Les outils de programmation      Structure d’un port                                                 Hello world !   Ecrir...
Les outils de programmation      Structure d’un port                                                 Hello world !   Ecrir...
Les outils de programmation      Structure d’un port                                                 Hello world !   Ecrir...
Les outils de programmation                                                                 Qu’est-ce qu’un registe ?     ...
Les outils de programmation                                                                 Qu’est-ce qu’un registe ?     ...
Les outils de programmation                                                                 Qu’est-ce qu’un registe ?     ...
Les outils de programmation                                                                 Qu’est-ce qu’un registe ?     ...
Les outils de programmation                                                                 Qu’est-ce qu’un registe ?     ...
Les outils de programmation                                                                 Qu’est-ce qu’un registe ?     ...
Les outils de programmation                                                                 Qu’est-ce qu’un registe ?     ...
Les outils de programmation                                                                 Qu’est-ce qu’un registe ?     ...
Les outils de programmation                                                                 Qu’est-ce qu’un registe ?     ...
Les outils de programmation                                                                 Qu’est-ce qu’un registe ?     ...
Les outils de programmation                                                                 Qu’est-ce qu’un registe ?     ...
Les outils de programmation                                                                 Qu’est-ce qu’un registe ?     ...
Les outils de programmation                                                                 Qu’est-ce qu’un registe ?     ...
Les outils de programmation                                                                 Qu’est-ce qu’un registe ?     ...
Les outils de programmation                                                                 Qu’est-ce qu’un registe ?     ...
Les outils de programmation                                                                 Qu’est-ce qu’un registe ?     ...
Les outils de programmation                                                                 Qu’est-ce qu’un registe ?     ...
Les outils de programmation                                                                 Qu’est-ce qu’un registe ?     ...
Les outils de programmation                                                                 Qu’est-ce qu’un registe ?     ...
Les outils de programmation                                                                 Qu’est-ce qu’un registe ?     ...
Les outils de programmation                                                                 Qu’est-ce qu’un registe ?     ...
Les outils de programmation                                                                 Qu’est-ce qu’un registe ?     ...
Les outils de programmation                                                                 Qu’est-ce qu’un registe ?     ...
Les outils de programmation                                                                 Qu’est-ce qu’un registe ?     ...
Les outils de programmation                                                                 Qu’est-ce qu’un registe ?     ...
Les outils de programmation                                                                 Qu’est-ce qu’un registe ?     ...
Les outils de programmation                                                                 Qu’est-ce qu’un registe ?     ...
Les outils de programmation                                                                 Qu’est-ce qu’un registe ?     ...
Les outils de programmation                                                                 Qu’est-ce qu’un registe ?     ...
Les outils de programmation                                                                 Qu’est-ce qu’un registe ?     ...
Les outils de programmation                                                                 Qu’est-ce qu’un registe ?     ...
Les outils de programmation                                                 Hello world !C’est bien, mais comment je peux ...
Les outils de programmation                                                 Hello world !C’est bien, mais comment je peux ...
Les outils de programmation                                                 Hello world !C’est bien, mais comment je peux ...
Les outils de programmation                                                 Hello world !C’est bien, mais comment je peux ...
Les outils de programmation                                                 Hello world !C’est bien, mais comment je peux ...
Les outils de programmation                                                 Hello world !C’est bien, mais comment je peux ...
Les outils de programmation                                                 Hello world !C’est bien, mais comment je peux ...
Les outils de programmation                                                 Hello world !C’est bien, mais comment je peux ...
Les outils de programmation                                                 Hello world !C’est bien, mais comment je peux ...
Les outils de programmation                                                 Hello world !C’est bien, mais comment je peux ...
Les outils de programmation                                                 Hello world !C’est bien, mais comment je peux ...
Les outils de programmation                                                 Hello world !C’est bien, mais comment je peux ...
Les outils de programmation                                                 Hello world !C’est bien, mais comment je peux ...
Les outils de programmation                                                 Hello world !C’est bien, mais comment je peux ...
Prochain SlideShare
Chargement dans…5
×

Programmation C pour AVR 8 bits

1 378 vues

Publié le

Introduction à la programmation en C pour AVR 8 bits

Publié dans : Technologie
0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
1 378
Sur SlideShare
0
Issues des intégrations
0
Intégrations
3
Actions
Partages
0
Téléchargements
74
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Programmation C pour AVR 8 bits

  1. 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 14 octobre 2010 J´r´my Cheynet – INTech Yann Sionneau – MiNET ee Introduction au C avr
  2. 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. 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. 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 J´r´my Cheynet – INTech Yann Sionneau – MiNET ee Introduction au C avr
  5. 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 Les diff´rents outils e avr-gcc (pour la compilation) J´r´my Cheynet – INTech Yann Sionneau – MiNET ee Introduction au C avr
  6. 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 Les diff´rents outils e avr-gcc (pour la compilation) avr-objcopy (pour cr´er le fichier hex) e J´r´my Cheynet – INTech Yann Sionneau – MiNET ee Introduction au C avr
  7. 7. 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
  8. 8. 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 J´r´my Cheynet – INTech Yann Sionneau – MiNET ee Introduction au C avr
  9. 9. 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 monfichier1.c J´r´my Cheynet – INTech Yann Sionneau – MiNET ee Introduction au C avr
  10. 10. 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 monfichier1.c avr-gcc -Wall -mmcu=atmega328p -DF CPU=16000000 -c monfichier2.c J´r´my Cheynet – INTech Yann Sionneau – MiNET ee Introduction au C avr
  11. 11. 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 monfichier1.c avr-gcc -Wall -mmcu=atmega328p -DF CPU=16000000 -c monfichier2.c avr-gcc -Wall -mmcu=atmega328p -DF CPU=16000000 -o monappli monfichier1.o monfichier2.o J´r´my Cheynet – INTech Yann Sionneau – MiNET ee Introduction au C avr
  12. 12. 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 monfichier1.c avr-gcc -Wall -mmcu=atmega328p -DF CPU=16000000 -c monfichier2.c avr-gcc -Wall -mmcu=atmega328p -DF CPU=16000000 -o monappli monfichier1.o monfichier2.o avr-objcopy J´r´my Cheynet – INTech Yann Sionneau – MiNET ee Introduction au C avr
  13. 13. 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 monfichier1.c avr-gcc -Wall -mmcu=atmega328p -DF CPU=16000000 -c monfichier2.c avr-gcc -Wall -mmcu=atmega328p -DF CPU=16000000 -o monappli monfichier1.o monfichier2.o avr-objcopy avr-objcopy -O ihex -R .eeprom monappli main.hex J´r´my Cheynet – INTech Yann Sionneau – MiNET ee Introduction au C avr
  14. 14. 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 monfichier1.c avr-gcc -Wall -mmcu=atmega328p -DF CPU=16000000 -c monfichier2.c avr-gcc -Wall -mmcu=atmega328p -DF CPU=16000000 -o monappli monfichier1.o monfichier2.o avr-objcopy avr-objcopy -O ihex -R .eeprom monappli main.hex avrdude J´r´my Cheynet – INTech Yann Sionneau – MiNET ee Introduction au C avr
  15. 15. 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 monfichier1.c avr-gcc -Wall -mmcu=atmega328p -DF CPU=16000000 -c monfichier2.c avr-gcc -Wall -mmcu=atmega328p -DF CPU=16000000 -o monappli monfichier1.o monfichier2.o avr-objcopy avr-objcopy -O ihex -R .eeprom monappli 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
  16. 16. 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 J´r´my Cheynet – INTech Yann Sionneau – MiNET ee Introduction au C avr
  17. 17. 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 J´r´my Cheynet – INTech Yann Sionneau – MiNET ee Introduction au C avr
  18. 18. 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 J´r´my Cheynet – INTech Yann Sionneau – MiNET ee Introduction au C avr
  19. 19. 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 J´r´my Cheynet – INTech Yann Sionneau – MiNET ee Introduction au C avr
  20. 20. 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 J´r´my Cheynet – INTech Yann Sionneau – MiNET ee Introduction au C avr
  21. 21. 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 J´r´my Cheynet – INTech Yann Sionneau – MiNET ee Introduction au C avr
  22. 22. 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 J´r´my Cheynet – INTech Yann Sionneau – MiNET ee Introduction au C avr
  23. 23. 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
  24. 24. Les outils de programmation Structure d’un port Hello world ! Ecrire un 1 ou un 0C’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
  25. 25. Les outils de programmation Structure d’un port Hello world ! Ecrire un 1 ou un 0C’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 J´r´my Cheynet – INTech Yann Sionneau – MiNET ee Introduction au C avr
  26. 26. Les outils de programmation Structure d’un port Hello world ! Ecrire un 1 ou un 0C’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 J´r´my Cheynet – INTech Yann Sionneau – MiNET ee Introduction au C avr
  27. 27. Les outils de programmation Structure d’un port Hello world ! Ecrire un 1 ou un 0C’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 J´r´my Cheynet – INTech Yann Sionneau – MiNET ee Introduction au C avr
  28. 28. Les outils de programmation Structure d’un port Hello world ! Ecrire un 1 ou un 0C’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 J´r´my Cheynet – INTech Yann Sionneau – MiNET ee Introduction au C avr
  29. 29. Les outils de programmation Structure d’un port Hello world ! Ecrire un 1 ou un 0C’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
  30. 30. Les outils de programmation Structure d’un port Hello world ! Ecrire un 1 ou un 0C’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 J´r´my Cheynet – INTech Yann Sionneau – MiNET ee Introduction au C avr
  31. 31. Les outils de programmation Structure d’un port Hello world ! Ecrire un 1 ou un 0C’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 J´r´my Cheynet – INTech Yann Sionneau – MiNET ee Introduction au C avr
  32. 32. Les outils de programmation Structure d’un port Hello world ! Ecrire un 1 ou un 0C’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 ) ; J´r´my Cheynet – INTech Yann Sionneau – MiNET ee Introduction au C avr
  33. 33. Les outils de programmation Structure d’un port Hello world ! Ecrire un 1 ou un 0C’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 J´r´my Cheynet – INTech Yann Sionneau – MiNET ee Introduction au C avr
  34. 34. Les outils de programmation Structure d’un port Hello world ! Ecrire un 1 ou un 0C’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 J´r´my Cheynet – INTech Yann Sionneau – MiNET ee Introduction au C avr
  35. 35. Les outils de programmation Structure d’un port Hello world ! Ecrire un 1 ou un 0C’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 ) ; J´r´my Cheynet – INTech Yann Sionneau – MiNET ee Introduction au C avr
  36. 36. Les outils de programmation Structure d’un port Hello world ! Ecrire un 1 ou un 0C’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
  37. 37. Les outils de programmation Structure d’un port Hello world ! Ecrire un 1 ou un 0C’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 J´r´my Cheynet – INTech Yann Sionneau – MiNET ee Introduction au C avr
  38. 38. Les outils de programmation Structure d’un port Hello world ! Ecrire un 1 ou un 0C’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 J´r´my Cheynet – INTech Yann Sionneau – MiNET ee Introduction au C avr
  39. 39. Les outils de programmation Structure d’un port Hello world ! Ecrire un 1 ou un 0C’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 ) ; J´r´my Cheynet – INTech Yann Sionneau – MiNET ee Introduction au C avr
  40. 40. Les outils de programmation Structure d’un port Hello world ! Ecrire un 1 ou un 0C’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 J´r´my Cheynet – INTech Yann Sionneau – MiNET ee Introduction au C avr
  41. 41. Les outils de programmation Structure d’un port Hello world ! Ecrire un 1 ou un 0C’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 J´r´my Cheynet – INTech Yann Sionneau – MiNET ee Introduction au C avr
  42. 42. Les outils de programmation Structure d’un port Hello world ! Ecrire un 1 ou un 0C’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
  43. 43. Les outils de programmation Structure d’un port Hello world ! Ecrire un 1 ou un 0C’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 J´r´my Cheynet – INTech Yann Sionneau – MiNET ee Introduction au C avr
  44. 44. Les outils de programmation Structure d’un port Hello world ! Ecrire un 1 ou un 0C’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 J´r´my Cheynet – INTech Yann Sionneau – MiNET ee Introduction au C avr
  45. 45. Les outils de programmation Structure d’un port Hello world ! Ecrire un 1 ou un 0C’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 ) ; J´r´my Cheynet – INTech Yann Sionneau – MiNET ee Introduction au C avr
  46. 46. Les outils de programmation Structure d’un port Hello world ! Ecrire un 1 ou un 0C’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 J´r´my Cheynet – INTech Yann Sionneau – MiNET ee Introduction au C avr
  47. 47. Les outils de programmation Structure d’un port Hello world ! Ecrire un 1 ou un 0C’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 J´r´my Cheynet – INTech Yann Sionneau – MiNET ee Introduction au C avr
  48. 48. Les outils de programmation Structure d’un port Hello world ! Ecrire un 1 ou un 0C’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
  49. 49. Les outils de programmation Structure d’un port Hello world ! Ecrire un 1 ou un 0C’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 J´r´my Cheynet – INTech Yann Sionneau – MiNET ee Introduction au C avr
  50. 50. Les outils de programmation Structure d’un port Hello world ! Ecrire un 1 ou un 0C’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 J´r´my Cheynet – INTech Yann Sionneau – MiNET ee Introduction au C avr
  51. 51. Les outils de programmation Structure d’un port Hello world ! Ecrire un 1 ou un 0C’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
  52. 52. Les outils de programmation Qu’est-ce qu’un registe ? Hello world ! Le fil rougeC’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
  53. 53. Les outils de programmation Qu’est-ce qu’un registe ? Hello world ! Le fil rougeC’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
  54. 54. Les outils de programmation Qu’est-ce qu’un registe ? Hello world ! Le fil rougeC’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 J´r´my Cheynet – INTech Yann Sionneau – MiNET ee Introduction au C avr
  55. 55. Les outils de programmation Qu’est-ce qu’un registe ? Hello world ! Le fil rougeC’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 J´r´my Cheynet – INTech Yann Sionneau – MiNET ee Introduction au C avr
  56. 56. Les outils de programmation Qu’est-ce qu’un registe ? Hello world ! Le fil rougeC’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 J´r´my Cheynet – INTech Yann Sionneau – MiNET ee Introduction au C avr
  57. 57. Les outils de programmation Qu’est-ce qu’un registe ? Hello world ! Le fil rougeC’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 J´r´my Cheynet – INTech Yann Sionneau – MiNET ee Introduction au C avr
  58. 58. Les outils de programmation Qu’est-ce qu’un registe ? Hello world ! Le fil rougeC’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 J´r´my Cheynet – INTech Yann Sionneau – MiNET ee Introduction au C avr
  59. 59. Les outils de programmation Qu’est-ce qu’un registe ? Hello world ! Le fil rougeC’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 J´r´my Cheynet – INTech Yann Sionneau – MiNET ee Introduction au C avr
  60. 60. Les outils de programmation Qu’est-ce qu’un registe ? Hello world ! Le fil rougeC’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 J´r´my Cheynet – INTech Yann Sionneau – MiNET ee Introduction au C avr
  61. 61. Les outils de programmation Qu’est-ce qu’un registe ? Hello world ! Le fil rougeC’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 J´r´my Cheynet – INTech Yann Sionneau – MiNET ee Introduction au C avr
  62. 62. Les outils de programmation Qu’est-ce qu’un registe ? Hello world ! Le fil rougeC’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 J´r´my Cheynet – INTech Yann Sionneau – MiNET ee Introduction au C avr
  63. 63. Les outils de programmation Qu’est-ce qu’un registe ? Hello world ! Le fil rougeC’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 J´r´my Cheynet – INTech Yann Sionneau – MiNET ee Introduction au C avr
  64. 64. Les outils de programmation Qu’est-ce qu’un registe ? Hello world ! Le fil rougeC’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 J´r´my Cheynet – INTech Yann Sionneau – MiNET ee Introduction au C avr
  65. 65. Les outils de programmation Qu’est-ce qu’un registe ? Hello world ! Le fil rougeC’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
  66. 66. Les outils de programmation Qu’est-ce qu’un registe ? Hello world ! Le fil rougeC’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 : J´r´my Cheynet – INTech Yann Sionneau – MiNET ee Introduction au C avr
  67. 67. Les outils de programmation Qu’est-ce qu’un registe ? Hello world ! Le fil rougeC’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 J´r´my Cheynet – INTech Yann Sionneau – MiNET ee Introduction au C avr
  68. 68. Les outils de programmation Qu’est-ce qu’un registe ? Hello world ! Le fil rougeC’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. J´r´my Cheynet – INTech Yann Sionneau – MiNET ee Introduction au C avr
  69. 69. Les outils de programmation Qu’est-ce qu’un registe ? Hello world ! Le fil rougeC’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
  70. 70. Les outils de programmation Qu’est-ce qu’un registe ? Hello world ! Le fil rougeC’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 J´r´my Cheynet – INTech Yann Sionneau – MiNET ee Introduction au C avr
  71. 71. Les outils de programmation Qu’est-ce qu’un registe ? Hello world ! Le fil rougeC’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) J´r´my Cheynet – INTech Yann Sionneau – MiNET ee Introduction au C avr
  72. 72. Les outils de programmation Qu’est-ce qu’un registe ? Hello world ! Le fil rougeC’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
  73. 73. Les outils de programmation Qu’est-ce qu’un registe ? Hello world ! Le fil rougeC’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
  74. 74. Les outils de programmation Qu’est-ce qu’un registe ? Hello world ! Le fil rougeC’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. J´r´my Cheynet – INTech Yann Sionneau – MiNET ee Introduction au C avr
  75. 75. Les outils de programmation Qu’est-ce qu’un registe ? Hello world ! Le fil rougeC’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
  76. 76. Les outils de programmation Qu’est-ce qu’un registe ? Hello world ! Le fil rougeC’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
  77. 77. Les outils de programmation Qu’est-ce qu’un registe ? Hello world ! Le fil rougeC’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
  78. 78. Les outils de programmation Qu’est-ce qu’un registe ? Hello world ! Le fil rougeC’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. J´r´my Cheynet – INTech Yann Sionneau – MiNET ee Introduction au C avr
  79. 79. Les outils de programmation Qu’est-ce qu’un registe ? Hello world ! Le fil rougeC’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 J´r´my Cheynet – INTech Yann Sionneau – MiNET ee Introduction au C avr
  80. 80. Les outils de programmation Qu’est-ce qu’un registe ? Hello world ! Le fil rougeC’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). J´r´my Cheynet – INTech Yann Sionneau – MiNET ee Introduction au C avr
  81. 81. Les outils de programmation Qu’est-ce qu’un registe ? Hello world ! Le fil rougeC’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 J´r´my Cheynet – INTech Yann Sionneau – MiNET ee Introduction au C avr
  82. 82. Les outils de programmation Qu’est-ce qu’un registe ? Hello world ! Le fil rougeC’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
  83. 83. 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 J´r´my Cheynet – INTech Yann Sionneau – MiNET ee Introduction au C avr
  84. 84. 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 J´r´my Cheynet – INTech Yann Sionneau – MiNET ee Introduction au C avr
  85. 85. 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 J´r´my Cheynet – INTech Yann Sionneau – MiNET ee Introduction au C avr
  86. 86. 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) J´r´my Cheynet – INTech Yann Sionneau – MiNET ee Introduction au C avr
  87. 87. 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 J´r´my Cheynet – INTech Yann Sionneau – MiNET ee Introduction au C avr
  88. 88. 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
  89. 89. 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 : J´r´my Cheynet – INTech Yann Sionneau – MiNET ee Introduction au C avr
  90. 90. 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 J´r´my Cheynet – INTech Yann Sionneau – MiNET ee Introduction au C avr
  91. 91. 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 Comment configurer, lire et ´crire sur un port e J´r´my Cheynet – INTech Yann Sionneau – MiNET ee Introduction au C avr
  92. 92. 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 Comment configurer, lire et ´crire sur un port e Ce qu’est un registre, et comment le configurer ` l’aide du a datasheet J´r´my Cheynet – INTech Yann Sionneau – MiNET ee Introduction au C avr
  93. 93. 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 Comment configurer, lire et ´crire sur un port e Ce qu’est un registre, et comment le configurer ` l’aide du a datasheet L’utilisation des interruptions J´r´my Cheynet – INTech Yann Sionneau – MiNET ee Introduction au C avr
  94. 94. 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 Comment configurer, lire et ´crire sur un port e Ce qu’est un registre, et comment le configurer ` l’aide du a datasheet L’utilisation des interruptions Des exemples simple : J´r´my Cheynet – INTech Yann Sionneau – MiNET ee Introduction au C avr
  95. 95. 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 Comment configurer, lire et ´crire sur un port e 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 : J´r´my Cheynet – INTech Yann Sionneau – MiNET ee Introduction au C avr
  96. 96. 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 Comment configurer, lire et ´crire sur un port e 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

×