Commit 70c40cb92de407a9fb12776b765a4a12b9b3f099

Authored by gperson
1 parent ed65270a

changement des fonctions manette.c et joystick .h dans polytech lille et dans le…

…s drivers afin de faire fonctionner le potentiometre de la manette sur 8 bits pour gerer les deux axes, le programme compile, jattends demain pour tester
src/lufa-LUFA-170418/LUFA/Drivers/Board/AVR8/PINGUI/Joystick.h
@@ -51,9 +51,11 @@ @@ -51,9 +51,11 @@
51 * 51 *
52 * @{ 52 * @{
53 */ 53 */
  54 +#include <stdint.h>
  55 +#include <avr/io.h>
  56 +#ifndef __JOYSTICK_PINGUI_H__
  57 +#define __JOYSTICK_PINGUI_H__
54 58
55 -#ifndef __JOYSTICK_BUMBLEB_H__  
56 -#define __JOYSTICK_BUMBLEB_H__  
57 59
58 /* Includes: */ 60 /* Includes: */
59 #include "../../../../Common/Common.h" 61 #include "../../../../Common/Common.h"
@@ -77,12 +79,13 @@ @@ -77,12 +79,13 @@
77 /* Public Interface - May be used in end-application: */ 79 /* Public Interface - May be used in end-application: */
78 /* Macros: */ 80 /* Macros: */
79 /** Mask for the joystick being pushed in the left direction. */ 81 /** Mask for the joystick being pushed in the left direction. */
80 - #define JOY_V (1 << 2) 82 + //#define JOY_V (1 << 2)
81 83
82 /** Mask for the joystick being pushed in the upward direction. */ 84 /** Mask for the joystick being pushed in the upward direction. */
83 - #define JOY_H (1 << 3) 85 + //#define JOY_H (1 << 3)
84 86
85 - 87 + #define joy_X_ADC 6 //pour utilisrr l'adc par rapport aux 2 axes
  88 + #define joy_Y_ADC 7
86 // ** Mask for the joystick being pushed in the right direction. 89 // ** Mask for the joystick being pushed in the right direction.
87 // #define JOY_RIGHT (1 << 0) 90 // #define JOY_RIGHT (1 << 0)
88 // 91 //
@@ -93,6 +96,29 @@ @@ -93,6 +96,29 @@
93 // #define JOY_PRESS (1 << 4) 96 // #define JOY_PRESS (1 << 4)
94 97
95 /* Inline Functions: */ 98 /* Inline Functions: */
  99 +//these are the functions coming from the examples we got on Mr REDON website
  100 +
  101 +
  102 + void adc_init(unsigned char mux)
  103 + {
  104 + ADCSRA = (1<<ADPS2) | (1<<ADPS1) | (1<<ADPS0); // Maximum resolution, take some time
  105 + ADCSRA |= (1<<ADEN); // Enable ADC
  106 + ADCSRB = (((mux&0x20)==0?0:1)<<MUX5); // Line to use
  107 + ADMUX = mux&0x1f;
  108 + ADMUX |= (0<<REFS1) | (1<<REFS0); // Reference to AVCC
  109 + ADMUX |= (1<<ADLAR); // Left adjusted, it is sufficient to read ADCH
  110 + }
  111 +
  112 + int adc_read(void)
  113 + {
  114 + ADCSRA |= (1<<ADSC); // Start conversion
  115 + while(ADCSRA & (1<<ADSC));
  116 + return ADCH;
  117 + }
  118 +
  119 +
  120 +
  121 +
96 #if !defined(__DOXYGEN__) 122 #if !defined(__DOXYGEN__)
97 static inline void Joystick_Init(void) 123 static inline void Joystick_Init(void)
98 { 124 {
@@ -112,7 +138,14 @@ @@ -112,7 +138,14 @@
112 static inline uint8_t Joystick_GetStatus(void) ATTR_WARN_UNUSED_RESULT; 138 static inline uint8_t Joystick_GetStatus(void) ATTR_WARN_UNUSED_RESULT;
113 static inline uint8_t Joystick_GetStatus(void) 139 static inline uint8_t Joystick_GetStatus(void)
114 { 140 {
115 - return (uint8_t)(~PIND & JOY_MASK); 141 + adc_init(joy_X_ADC);
  142 + uinit8_t Xquatrebits = adc_read();
  143 + Xquatrebits&=0xF0; //pour les quatres bits de poids fort pour axe X
  144 + adc_init(joy_Y_ADC);
  145 + uinit8_t Yquatrebits = adc_read();
  146 + Yquatrebits&=0xF0;
  147 + Yquatrebits=Yquatrebits>>4 //pour les quatres bits de poids faible pour axe Y, on place en fort et on decale de 4 bits into le poids faible
  148 + return (uint8_t)(Xquatrebits+Yquatrebits);
116 } 149 }
117 #endif 150 #endif
118 151
src/lufa-LUFA-170418/PolytechLille/Manette/Manette.c
@@ -166,23 +166,23 @@ bool CALLBACK_HID_Device_CreateHIDReport(USB_ClassInfo_HID_Device_t* const HIDIn @@ -166,23 +166,23 @@ bool CALLBACK_HID_Device_CreateHIDReport(USB_ClassInfo_HID_Device_t* const HIDIn
166 USB_JoystickReport_Data_t* JoystickReport = (USB_JoystickReport_Data_t*)ReportData; 166 USB_JoystickReport_Data_t* JoystickReport = (USB_JoystickReport_Data_t*)ReportData;
167 167
168 uint8_t JoyStatus_LCL = Joystick_GetStatus(); 168 uint8_t JoyStatus_LCL = Joystick_GetStatus();
169 - uint8_t ButtonStatus_LCL = Buttons_GetStatus_HAUT(); 169 + //uint8_t ButtonStatus_LCL = Buttons_GetStatus_HAUT(); // poir les boutons
170 170
171 - if (JoyStatus_LCL & JOY_UP)  
172 - JoystickReport->Y = -100;  
173 - else if (JoyStatus_LCL & JOY_DOWN)  
174 - JoystickReport->Y = 100;  
175 171
176 - if (JoyStatus_LCL & JOY_LEFT)  
177 - JoystickReport->X = -100;  
178 - else if (JoyStatus_LCL & JOY_RIGHT)  
179 - JoystickReport->X = 100; 172 + JoystickReport->X = JoyStatus_LCL & 0xF0;
  173 + JoystickReport->Y = JoyStatus_LCL & 0x0F;
  174 +
  175 +
  176 +// if (JoyStatus_LCL & JOY_LEFT)
  177 +// JoystickReport->X = -100;
  178 +// else if (JoyStatus_LCL & JOY_RIGHT)
  179 +// JoystickReport->X = 100;
180 180
181 /* if (JoyStatus_LCL & JOY_PRESS) 181 /* if (JoyStatus_LCL & JOY_PRESS)
182 JoystickReport->Button |= (1 << 1); 182 JoystickReport->Button |= (1 << 1);
183 */ 183 */
184 - if (ButtonStatus_LCL & BUTTONS_HAUT)  
185 - JoystickReport->Button |= (1 << 0); 184 +// if (ButtonStatus_LCL & BUTTONS_HAUT)
  185 +// JoystickReport->Button |= (1 << 0);
186 186
187 *ReportSize = sizeof(USB_JoystickReport_Data_t); 187 *ReportSize = sizeof(USB_JoystickReport_Data_t);
188 return false; 188 return false;