« SE3 PSE Binome2023-6 » : différence entre les versions
Aller à la navigation
Aller à la recherche
(→PCB) |
(→Code C) |
||
Ligne 25 : | Ligne 25 : | ||
== Code C == | == Code C == | ||
Pour pouvoir avoir nos boutons fonctionnel on s'est basé sur la démo du joystick pour créer "Manette", et ensuite on est partie d'un code minimal pour pouvoir rajouté la description de notre manette, et créer deux interfaces, une pour nos boutons, et une autre pour nos LEDs. | Pour pouvoir avoir nos boutons fonctionnel on s'est basé sur la démo du joystick pour créer "Manette", et ensuite on est partie d'un code minimal pour pouvoir rajouté la description de notre manette, et créer deux interfaces, une pour nos boutons, et une autre pour nos LEDs. | ||
{| class="wikitable centre" | |||
|- | |||
| rowspan="3" | [[Fichier:Lsusb Descriptor.png|gauche|vignette|Descriptor de notre manette]] || [[Fichier:Manette et minimal.png|gauche|vignette|Manette et minimal trouvable dans TPI_LUFA_LibUSB/manette_LUFA/Polytech/]] Manette et minimal trouvable dans TPI_LUFA_LibUSB/manette_LUFA/Polytech/ | |||
|- | |||
| <syntaxhighlight lang="c"> | |||
[[Fichier:Lsusb Descriptor.png|gauche|vignette|Descriptor de notre manette]] | |||
<syntaxhighlight lang="c"> | |||
bool GetNextReport(USB_JoystickReport_Data_t* const ReportData) | bool GetNextReport(USB_JoystickReport_Data_t* const ReportData) | ||
Ligne 84 : | Ligne 56 : | ||
} | } | ||
</syntaxhighlight><syntaxhighlight lang="c"> | </syntaxhighlight> | ||
|- | |||
| <syntaxhighlight lang="c"> | |||
/* Hardware Initialization */ | /* Hardware Initialization */ | ||
Joystick_Init(); | Joystick_Init(); | ||
Ligne 114 : | Ligne 88 : | ||
PORTE |= 0b01000000; | PORTE |= 0b01000000; | ||
</syntaxhighlight> | </syntaxhighlight> | ||
|} | |||
== Montage de la carte : == | == Montage de la carte : == | ||
Fichiers: [[Fichier:ManetteUSBLilianPierre.zip]] | Fichiers: [[Fichier:ManetteUSBLilianPierre.zip]] |
Version du 5 juin 2024 à 18:47
Conception de la manette
SCHÉMATIQUE KiCAD
PCB
Code C
Pour pouvoir avoir nos boutons fonctionnel on s'est basé sur la démo du joystick pour créer "Manette", et ensuite on est partie d'un code minimal pour pouvoir rajouté la description de notre manette, et créer deux interfaces, une pour nos boutons, et une autre pour nos LEDs.
Manette et minimal trouvable dans TPI_LUFA_LibUSB/manette_LUFA/Polytech/ | |
bool GetNextReport(USB_JoystickReport_Data_t* const ReportData)
{
bool InputChanged = false;
/* Clear the report contents */
memset(ReportData, 0, sizeof(USB_JoystickReport_Data_t));
if (~(PINF>>PIN7) & 1) ReportData->Button |= (1 << 1);
if (~(PINF>>PIN6) & 1) ReportData->Button |= (1 << 0);
if (~(PIND>>PIN1) & 1) ReportData->Y = 100;
if (~(PIND>>PIN2) & 1) ReportData->X = 100;
if (~(PIND>>PIN3) & 1) ReportData->X = -100;
if (~(PIND>>PIN5) & 1) ReportData->Y = -100;
InputChanged = 1;
return InputChanged;
}
| |
/* Hardware Initialization */
Joystick_Init();
LEDs_Init();
Buttons_Init();
USB_Init();
MCUCR |= (1<<JTD);
MCUCR |= (1<<JTD);
CLKSEL0 = 0b00010101; // sélection de l'horloge externe
CLKSEL1 = 0b00001111; // minimum de 8Mhz
CLKPR = 0b10000000; // modification du diviseur d'horloge (CLKPCE=1)
CLKPR = 0; // 0 pour pas de diviseur (diviseur de 1)
//Boutons A et B
DDRF &= 0b00111111;
PORTF |= 0b11000000;
//Boutons directionnels
DDRD &= 0b11010001;
PORTD |= 0b00101110;
// Allumer les leds
PORTF |= 0b00100011;
PORTE |= 0b01000000;
|
Montage de la carte :
Fichiers: Fichier:ManetteUSBLilianPierre.zip
gerber: Fichiers: Fichier:SE3-pad-job.gbrjob.zip gerber: Fichiers: Fichier:SE3-pad-LGPC.zip