From 93cb7e9780979196f7b563006494784c7c4d1655 Mon Sep 17 00:00:00 2001 From: gperson Date: Wed, 9 Dec 2020 11:46:22 +0100 Subject: [PATCH] Les quatre boutons gauche, haut, droite et gauche fonctionnent, moyennant la desactivation d'un registre dans le setup_hardware --- src/lufa-LUFA-170418/LUFA/Drivers/Board/AVR8/PINGUI/Buttons.h | 13 +++++++------ src/lufa-LUFA-170418/PolytechLille/Manette/Descriptors.c | 12 ++++++------ src/lufa-LUFA-170418/PolytechLille/Manette/Manette.c | 15 +++++++++++++-- 3 files changed, 26 insertions(+), 14 deletions(-) diff --git a/src/lufa-LUFA-170418/LUFA/Drivers/Board/AVR8/PINGUI/Buttons.h b/src/lufa-LUFA-170418/LUFA/Drivers/Board/AVR8/PINGUI/Buttons.h index 44ba9ec..c7f8578 100644 --- a/src/lufa-LUFA-170418/LUFA/Drivers/Board/AVR8/PINGUI/Buttons.h +++ b/src/lufa-LUFA-170418/LUFA/Drivers/Board/AVR8/PINGUI/Buttons.h @@ -124,7 +124,7 @@ static inline void Buttons_Init_BAS(void) { DDRF &= ~BUTTONS_BAS; - PORTF |= BUTTONS_BAS; + //PORTF |= BUTTONS_BAS; } static inline void Buttons_Disable_BAS(void) @@ -138,7 +138,7 @@ static inline void Buttons_Init_DROITE(void) { DDRF &= ~BUTTONS_DROITE; - PORTF |= BUTTONS_DROITE; + //PORTF |= BUTTONS_DROITE; } static inline void Buttons_Disable_DROITE(void) @@ -152,7 +152,7 @@ static inline void Buttons_Init_GAUCHE(void) { DDRF &= ~BUTTONS_GAUCHE; - PORTF |= BUTTONS_GAUCHE; + // PORTF |= BUTTONS_GAUCHE; } static inline void Buttons_Disable_GAUCHE(void) @@ -198,7 +198,7 @@ static inline uint8_t Buttons_GetStatus_BAS(void) ATTR_WARN_UNUSED_RESULT; static inline uint8_t Buttons_GetStatus_BAS(void) { - return ((PINF & BUTTONS_BAS) ^ BUTTONS_BAS); + return (PINF & BUTTONS_BAS) ; } //DROITE @@ -206,7 +206,7 @@ static inline uint8_t Buttons_GetStatus_DROITE(void) ATTR_WARN_UNUSED_RESULT; static inline uint8_t Buttons_GetStatus_DROITE(void) { - return ((PINF & BUTTONS_DROITE) ^ BUTTONS_DROITE); + return (PINF & BUTTONS_DROITE) ; } //GAUCHE @@ -214,8 +214,9 @@ static inline uint8_t Buttons_GetStatus_GAUCHE(void) ATTR_WARN_UNUSED_RESULT; static inline uint8_t Buttons_GetStatus_GAUCHE(void) { - return ((PINF & BUTTONS_GAUCHE) ^ BUTTONS_GAUCHE); + return (PINF & BUTTONS_GAUCHE); } +//Seul le bouton haut est fonctionnel, il faut changer les init et les return de chaque bouton (sauf le bouton du joystick) de la meme maniere //HAUT diff --git a/src/lufa-LUFA-170418/PolytechLille/Manette/Descriptors.c b/src/lufa-LUFA-170418/PolytechLille/Manette/Descriptors.c index d22187e..9fc26f0 100644 --- a/src/lufa-LUFA-170418/PolytechLille/Manette/Descriptors.c +++ b/src/lufa-LUFA-170418/PolytechLille/Manette/Descriptors.c @@ -149,9 +149,9 @@ const USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor = .TotalEndpoints = 1, - .Class = HID_CSCP_HIDClass, - .SubClass = HID_CSCP_NonBootSubclass, - .Protocol = HID_CSCP_NonBootProtocol, + .Class = USB_CSCP_VendorSpecificClass, + .SubClass = 0, + .Protocol = 0, .InterfaceStrIndex = NO_DESCRIPTOR }, @@ -177,9 +177,9 @@ const USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor = .TotalEndpoints = 1, - .Class = HID_CSCP_HIDClass, - .SubClass = HID_CSCP_NonBootSubclass, - .Protocol = HID_CSCP_NonBootProtocol, + .Class = USB_CSCP_VendorSpecificClass, + .SubClass = 0, + .Protocol = 0, .InterfaceStrIndex = NO_DESCRIPTOR }, diff --git a/src/lufa-LUFA-170418/PolytechLille/Manette/Manette.c b/src/lufa-LUFA-170418/PolytechLille/Manette/Manette.c index 9649a4a..ed5b728 100644 --- a/src/lufa-LUFA-170418/PolytechLille/Manette/Manette.c +++ b/src/lufa-LUFA-170418/PolytechLille/Manette/Manette.c @@ -115,6 +115,8 @@ void SetupHardware(void) Buttons_Init_GAUCHE(); Buttons_Init_STOP(); Buttons_Init_SEL(); + MCUCR|=(1<X = JoyStatus_LCL >> 4; JoystickReport->Y = JoyStatus_LCL & 0x0F; - if (ButtonStatus_LCL & BUTTONS_HAUT) + if (ButtonStatus_LCL_HAUT & BUTTONS_HAUT) { JoystickReport->Button |= ( 1<<0);} + if (ButtonStatus_LCL_GAUCHE & BUTTONS_GAUCHE) + { JoystickReport->Button |= ( 1<<1);} + if (ButtonStatus_LCL_BAS & BUTTONS_BAS) + { JoystickReport->Button |= ( 1<<2);} + if (ButtonStatus_LCL_DROITE & BUTTONS_DROITE) + { JoystickReport->Button |= ( 1<<3);} // if (JoyStatus_LCL & JOY_LEFT) -- libgit2 0.21.2