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. 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
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
Les diff´rents outils
e
avr-gcc (pour la compilation)
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
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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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
25. 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
J´r´my Cheynet – INTech Yann Sionneau – MiNET
ee Introduction au C avr
26. 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
J´r´my Cheynet – INTech Yann Sionneau – MiNET
ee Introduction au C avr
27. 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
J´r´my Cheynet – INTech Yann Sionneau – MiNET
ee Introduction au C avr
28. 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
J´r´my Cheynet – INTech Yann Sionneau – MiNET
ee Introduction au C avr
29. 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
30. 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
J´r´my Cheynet – INTech Yann Sionneau – MiNET
ee Introduction au C avr
31. 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
J´r´my Cheynet – INTech Yann Sionneau – MiNET
ee Introduction au C avr
32. 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 ) ;
J´r´my Cheynet – INTech Yann Sionneau – MiNET
ee Introduction au C avr
33. 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
J´r´my Cheynet – INTech Yann Sionneau – MiNET
ee Introduction au C avr
34. 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
J´r´my Cheynet – INTech Yann Sionneau – MiNET
ee Introduction au C avr
35. 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 ) ;
J´r´my Cheynet – INTech Yann Sionneau – MiNET
ee Introduction au C avr
36. 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
37. 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
J´r´my Cheynet – INTech Yann Sionneau – MiNET
ee Introduction au C avr
38. 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
J´r´my Cheynet – INTech Yann Sionneau – MiNET
ee Introduction au C avr
39. 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 ) ;
J´r´my Cheynet – INTech Yann Sionneau – MiNET
ee Introduction au C avr
40. 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
J´r´my Cheynet – INTech Yann Sionneau – MiNET
ee Introduction au C avr
41. 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
J´r´my Cheynet – INTech Yann Sionneau – MiNET
ee Introduction au C avr
42. 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
43. 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
J´r´my Cheynet – INTech Yann Sionneau – MiNET
ee Introduction au C avr
44. 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
J´r´my Cheynet – INTech Yann Sionneau – MiNET
ee Introduction au C avr
45. 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 ) ;
J´r´my Cheynet – INTech Yann Sionneau – MiNET
ee Introduction au C avr
46. 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
J´r´my Cheynet – INTech Yann Sionneau – MiNET
ee Introduction au C avr
47. 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
J´r´my Cheynet – INTech Yann Sionneau – MiNET
ee Introduction au C avr
48. 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
49. 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
J´r´my Cheynet – INTech Yann Sionneau – MiNET
ee Introduction au C avr
50. 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
J´r´my Cheynet – INTech Yann Sionneau – MiNET
ee Introduction au C avr
51. 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
52. 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
53. 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
54. 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
J´r´my Cheynet – INTech Yann Sionneau – MiNET
ee Introduction au C avr
55. 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
J´r´my Cheynet – INTech Yann Sionneau – MiNET
ee Introduction au C avr
56. 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
J´r´my Cheynet – INTech Yann Sionneau – MiNET
ee Introduction au C avr
57. 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
J´r´my Cheynet – INTech Yann Sionneau – MiNET
ee Introduction au C avr
58. 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
J´r´my Cheynet – INTech Yann Sionneau – MiNET
ee Introduction au C avr
59. 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
J´r´my Cheynet – INTech Yann Sionneau – MiNET
ee Introduction au C avr
60. 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
J´r´my Cheynet – INTech Yann Sionneau – MiNET
ee Introduction au C avr
61. 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
J´r´my Cheynet – INTech Yann Sionneau – MiNET
ee Introduction au C avr
62. 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
J´r´my Cheynet – INTech Yann Sionneau – MiNET
ee Introduction au C avr
63. 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
J´r´my Cheynet – INTech Yann Sionneau – MiNET
ee Introduction au C avr
64. 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
J´r´my Cheynet – INTech Yann Sionneau – MiNET
ee Introduction au C avr
65. 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
66. 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 :
J´r´my Cheynet – INTech Yann Sionneau – MiNET
ee Introduction au C avr
67. 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
J´r´my Cheynet – INTech Yann Sionneau – MiNET
ee Introduction au C avr
68. 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.
J´r´my Cheynet – INTech Yann Sionneau – MiNET
ee Introduction au C avr
69. 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
70. 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
J´r´my Cheynet – INTech Yann Sionneau – MiNET
ee Introduction au C avr
71. 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)
J´r´my Cheynet – INTech Yann Sionneau – MiNET
ee Introduction au C avr
72. 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
73. 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
74. 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.
J´r´my Cheynet – INTech Yann Sionneau – MiNET
ee Introduction au C avr
75. 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
76. 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
77. 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
78. 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.
J´r´my Cheynet – INTech Yann Sionneau – MiNET
ee Introduction au C avr
79. 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
J´r´my Cheynet – INTech Yann Sionneau – MiNET
ee Introduction au C avr
80. 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).
J´r´my Cheynet – INTech Yann Sionneau – MiNET
ee Introduction au C avr
81. 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
J´r´my Cheynet – INTech Yann Sionneau – MiNET
ee Introduction au C avr
82. 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
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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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