« I2L 2022 Groupe6 » : différence entre les versions
(Procédure compil) |
(Maj Install) |
||
Ligne 11 : | Ligne 11 : | ||
Vous utiliserez le même circuit imprimé que le groupe 5. | Vous utiliserez le même circuit imprimé que le groupe 5. | ||
== | = Installation = | ||
=== Installation des dépendances : === | |||
apt install gcc-avr avr-libc dfu-programmer | apt install gcc-avr avr-libc dfu-programmer | ||
=== Passer du fichier source au fichier exécutable : === | |||
Compil : avr-gcc -mmcu=atmega16u2 -DF_CPU=16000000UL -c -Wall -I. -Os timer.c -o timer.o | Compil : avr-gcc -mmcu=atmega16u2 -DF_CPU=16000000UL -c -Wall -I. -Os timer.c -o timer.o | ||
Edition des liens (exe) : avr-gcc -mmcu=atmega16u2 -g -lm -Wl,--gc-sections -o timer.elf timer.o | Edition des liens (exe) : avr-gcc -mmcu=atmega16u2 -g -lm -Wl,--gc-sections -o timer.elf timer.o | ||
=== Transformer le code source en fichiers utilisable pour la carte === | |||
avr-objcopy -j .text -j .data -O ihex timer.elf timer.hex | avr-objcopy -j .text -j .data -O ihex timer.elf timer.hex | ||
Ligne 38 : | Ligne 30 : | ||
dfu_programmer atmega16u2 reset | dfu_programmer atmega16u2 reset | ||
= Programmation = | |||
=== Prog SE === | |||
==== LED ==== | ==== LED ==== | ||
===== Faire clignoter une led ===== | ===== Faire clignoter une led ===== | ||
#include <avr/io.h> | |||
#define LED 8 | |||
#define BOUTON 9 | |||
int main(void){ | |||
DDRB |= 0x01; // Sortie pour la LED | |||
DDRB &= ~0x02; // Entrée pour le bouton | |||
PORTB |= 0x02; // Configuration de la résistance de tirage | |||
while(1){ | |||
if(PINB & 0x02) PORTB &= ~0x01; // LED éteinte | |||
else PORTB |= 0x01; // LED allumée | |||
} | |||
} | |||
==== Boutons ==== | ==== Boutons ==== |
Version du 22 mai 2023 à 08:21
Proposition de système
Nous voudrions équiper la carte d'un port USB, d'une horloge, d'une LED, d'un bouton et d'un haut-parleur. Le but final serait de, lors d'un appui bouton et/ou CapsLock (à définir ensemble), de faire un son et un allumage de la LED.
Contre-proposition
L'idée est bien de refléter l'ensemble de l'état des touches "verrous" du clavier du PC. A chaque changement d'état de ces touches vous associerez un signal lumineux avec les 3 LED multicolores et surtout un signal sonore. Vous êtes tenus de produire des sons et pas seulement des notes. Pour cela vous devrez réussir à stocker (en mémoire flash) des échantillons sonores et à les reproduire sur votre haut-parleur.
Fichiers
Vous utiliserez le même circuit imprimé que le groupe 5.
Installation
Installation des dépendances :
apt install gcc-avr avr-libc dfu-programmer
Passer du fichier source au fichier exécutable :
Compil : avr-gcc -mmcu=atmega16u2 -DF_CPU=16000000UL -c -Wall -I. -Os timer.c -o timer.o
Edition des liens (exe) : avr-gcc -mmcu=atmega16u2 -g -lm -Wl,--gc-sections -o timer.elf timer.o
Transformer le code source en fichiers utilisable pour la carte
avr-objcopy -j .text -j .data -O ihex timer.elf timer.hex
dfu_programmer atmega16u2 erase
dfu_programmer atmega16u2 flash time.hex
dfu_programmer atmega16u2 reset
Programmation
Prog SE
LED
Faire clignoter une led
#include <avr/io.h> #define LED 8 #define BOUTON 9 int main(void){ DDRB |= 0x01; // Sortie pour la LED DDRB &= ~0x02; // Entrée pour le bouton PORTB |= 0x02; // Configuration de la résistance de tirage while(1){ if(PINB & 0x02) PORTB &= ~0x01; // LED éteinte else PORTB |= 0x01; // LED allumée } }
Boutons
Faire clignoter une led en fonction du bouton
HP
Faire parler le HP
Prog USB
Le programme qui va sur le microcontrôleur
Prog PC
Le programme qui tourne sur le pc