Commit 5be8c2c20ecb6124adc709e002b86b40fb9636a6
1 parent
12cb358a
debut de 5.2, jai cree le driver PINGUI dans src/lufa-truc/LUFA/Drivers/Board/AV…
…R8, que je vais implementer par la suite
Showing
4 changed files
with
463 additions
and
0 deletions
Show diff stats
src/lufa-LUFA-170418/LUFA/Drivers/Board/AVR8/PINGUI/Board.h
0 → 100644
... | ... | @@ -0,0 +1,86 @@ |
1 | +/* | |
2 | + LUFA Library | |
3 | + Copyright (C) Dean Camera, 2017. | |
4 | + | |
5 | + dean [at] fourwalledcubicle [dot] com | |
6 | + www.lufa-lib.org | |
7 | +*/ | |
8 | + | |
9 | +/* | |
10 | + Copyright 2017 Dean Camera (dean [at] fourwalledcubicle [dot] com) | |
11 | + | |
12 | + Permission to use, copy, modify, distribute, and sell this | |
13 | + software and its documentation for any purpose is hereby granted | |
14 | + without fee, provided that the above copyright notice appear in | |
15 | + all copies and that both that the copyright notice and this | |
16 | + permission notice and warranty disclaimer appear in supporting | |
17 | + documentation, and that the name of the author not be used in | |
18 | + advertising or publicity pertaining to distribution of the | |
19 | + software without specific, written prior permission. | |
20 | + | |
21 | + The author disclaims all warranties with regard to this | |
22 | + software, including all implied warranties of merchantability | |
23 | + and fitness. In no event shall the author be liable for any | |
24 | + special, indirect or consequential damages or any damages | |
25 | + whatsoever resulting from loss of use, data or profits, whether | |
26 | + in an action of contract, negligence or other tortious action, | |
27 | + arising out of or in connection with the use or performance of | |
28 | + this software. | |
29 | +*/ | |
30 | + | |
31 | +/** \file | |
32 | + * \brief Board specific information header for the Fletchtronics BUMBLEB. | |
33 | + * \copydetails Group_BoardInfo_BUMBLEB | |
34 | + * | |
35 | + * \note This file should not be included directly. It is automatically included as needed by the Board driver | |
36 | + * dispatch header located in LUFA/Drivers/Board/Board.h. | |
37 | + */ | |
38 | + | |
39 | +/** \ingroup Group_BoardInfo | |
40 | + * \defgroup Group_BoardInfo_BUMBLEB BUMBLEB | |
41 | + * \brief Board specific information header for the Fletchtronics BUMBLEB. | |
42 | + * | |
43 | + * Board specific information header for the Fletchtronics BUMBLEB (http://fletchtronics.net/bumble-b). | |
44 | + * | |
45 | + * @{ | |
46 | + */ | |
47 | + | |
48 | +#ifndef __BOARD_BUMBLEB_H__ | |
49 | +#define __BOARD_BUMBLEB_H__ | |
50 | + | |
51 | + /* Includes: */ | |
52 | + #include "../../../../Common/Common.h" | |
53 | + #include "../../Buttons.h" | |
54 | + #include "../../Joystick.h" | |
55 | + #include "../../LEDs.h" | |
56 | + | |
57 | + /* Enable C linkage for C++ Compilers: */ | |
58 | + #if defined(__cplusplus) | |
59 | + extern "C" { | |
60 | + #endif | |
61 | + | |
62 | + /* Preprocessor Checks: */ | |
63 | + #if !defined(__INCLUDE_FROM_BOARD_H) | |
64 | + #error Do not include this file directly. Include LUFA/Drivers/Board/Board.h instead. | |
65 | + #endif | |
66 | + | |
67 | + /* Public Interface - May be used in end-application: */ | |
68 | + /* Macros: */ | |
69 | + /** Indicates the board has hardware Buttons mounted. */ | |
70 | + #define BOARD_HAS_BUTTONS | |
71 | + | |
72 | + /** Indicates the board has a hardware Joystick mounted. */ | |
73 | + #define BOARD_HAS_JOYSTICK | |
74 | + | |
75 | + /** Indicates the board has hardware LEDs mounted. */ | |
76 | + #define BOARD_HAS_LEDS | |
77 | + | |
78 | + /* Disable C linkage for C++ Compilers: */ | |
79 | + #if defined(__cplusplus) | |
80 | + } | |
81 | + #endif | |
82 | + | |
83 | +#endif | |
84 | + | |
85 | +/** @} */ | |
86 | + | ... | ... |
src/lufa-LUFA-170418/LUFA/Drivers/Board/AVR8/PINGUI/Buttons.h
0 → 100644
... | ... | @@ -0,0 +1,105 @@ |
1 | +/* | |
2 | + LUFA Library | |
3 | + Copyright (C) Dean Camera, 2017. | |
4 | + | |
5 | + dean [at] fourwalledcubicle [dot] com | |
6 | + www.lufa-lib.org | |
7 | +*/ | |
8 | + | |
9 | +/* | |
10 | + Copyright 2017 Dean Camera (dean [at] fourwalledcubicle [dot] com) | |
11 | + | |
12 | + Permission to use, copy, modify, distribute, and sell this | |
13 | + software and its documentation for any purpose is hereby granted | |
14 | + without fee, provided that the above copyright notice appear in | |
15 | + all copies and that both that the copyright notice and this | |
16 | + permission notice and warranty disclaimer appear in supporting | |
17 | + documentation, and that the name of the author not be used in | |
18 | + advertising or publicity pertaining to distribution of the | |
19 | + software without specific, written prior permission. | |
20 | + | |
21 | + The author disclaims all warranties with regard to this | |
22 | + software, including all implied warranties of merchantability | |
23 | + and fitness. In no event shall the author be liable for any | |
24 | + special, indirect or consequential damages or any damages | |
25 | + whatsoever resulting from loss of use, data or profits, whether | |
26 | + in an action of contract, negligence or other tortious action, | |
27 | + arising out of or in connection with the use or performance of | |
28 | + this software. | |
29 | +*/ | |
30 | + | |
31 | +/** \file | |
32 | + * \brief Board specific Buttons driver header for the Fletchtronics BUMBLEB. | |
33 | + * \copydetails Group_Buttons_BUMBLEB | |
34 | + * | |
35 | + * \note This file should not be included directly. It is automatically included as needed by the Buttons driver | |
36 | + * dispatch header located in LUFA/Drivers/Board/Buttons.h. | |
37 | + */ | |
38 | + | |
39 | +/** \ingroup Group_Buttons | |
40 | + * \defgroup Group_Buttons_BUMBLEB BUMBLEB | |
41 | + * \brief Board specific Buttons driver header for the Fletchtronics BUMBLEB. | |
42 | + * | |
43 | + * Board specific buttons driver header for the Fletchtronics BUMBLEB (http://fletchtronics.net/bumble-b). The BUMBLEB | |
44 | + * third-party board does not include any on-board peripherals, but does have an officially recommended external peripheral | |
45 | + * layout for buttons, LEDs and a Joystick. | |
46 | + * | |
47 | + * <table> | |
48 | + * <tr><th>Name</th><th>Info</th><th>Active Level</th><th>Port Pin</th></tr> | |
49 | + * <tr><td>BUTTONS_BUTTON1</td><td>HWB Button</td><td>Low</td><td>PORTD.7</td></tr> | |
50 | + * </table> | |
51 | + * | |
52 | + * @{ | |
53 | + */ | |
54 | + | |
55 | +#ifndef __BUTTONS_BUMBLEB_H__ | |
56 | +#define __BUTTONS_BUMBLEB_H__ | |
57 | + | |
58 | + /* Includes: */ | |
59 | + #include "../../../../Common/Common.h" | |
60 | + | |
61 | + /* Enable C linkage for C++ Compilers: */ | |
62 | + #if defined(__cplusplus) | |
63 | + extern "C" { | |
64 | + #endif | |
65 | + | |
66 | + /* Preprocessor Checks: */ | |
67 | + #if !defined(__INCLUDE_FROM_BUTTONS_H) | |
68 | + #error Do not include this file directly. Include LUFA/Drivers/Board/Buttons.h instead. | |
69 | + #endif | |
70 | + | |
71 | + /* Public Interface - May be used in end-application: */ | |
72 | + /* Macros: */ | |
73 | + /** Button mask for the first button on the board. */ | |
74 | + #define BUTTONS_BUTTON1 (1 << 7) | |
75 | + | |
76 | + /* Inline Functions: */ | |
77 | + #if !defined(__DOXYGEN__) | |
78 | + static inline void Buttons_Init(void) | |
79 | + { | |
80 | + DDRD &= ~BUTTONS_BUTTON1; | |
81 | + PORTD |= BUTTONS_BUTTON1; | |
82 | + } | |
83 | + | |
84 | + static inline void Buttons_Disable(void) | |
85 | + { | |
86 | + DDRD &= ~BUTTONS_BUTTON1; | |
87 | + PORTD &= ~BUTTONS_BUTTON1; | |
88 | + } | |
89 | + | |
90 | + static inline uint8_t Buttons_GetStatus(void) ATTR_WARN_UNUSED_RESULT; | |
91 | + static inline uint8_t Buttons_GetStatus(void) | |
92 | + { | |
93 | + return ((PIND & BUTTONS_BUTTON1) ^ BUTTONS_BUTTON1); | |
94 | + } | |
95 | + #endif | |
96 | + | |
97 | + /* Disable C linkage for C++ Compilers: */ | |
98 | + #if defined(__cplusplus) | |
99 | + } | |
100 | + #endif | |
101 | + | |
102 | +#endif | |
103 | + | |
104 | +/** @} */ | |
105 | + | ... | ... |
src/lufa-LUFA-170418/LUFA/Drivers/Board/AVR8/PINGUI/Joystick.h
0 → 100644
... | ... | @@ -0,0 +1,123 @@ |
1 | +/* | |
2 | + LUFA Library | |
3 | + Copyright (C) Dean Camera, 2017. | |
4 | + | |
5 | + dean [at] fourwalledcubicle [dot] com | |
6 | + www.lufa-lib.org | |
7 | +*/ | |
8 | + | |
9 | +/* | |
10 | + Copyright 2017 Dean Camera (dean [at] fourwalledcubicle [dot] com) | |
11 | + | |
12 | + Permission to use, copy, modify, distribute, and sell this | |
13 | + software and its documentation for any purpose is hereby granted | |
14 | + without fee, provided that the above copyright notice appear in | |
15 | + all copies and that both that the copyright notice and this | |
16 | + permission notice and warranty disclaimer appear in supporting | |
17 | + documentation, and that the name of the author not be used in | |
18 | + advertising or publicity pertaining to distribution of the | |
19 | + software without specific, written prior permission. | |
20 | + | |
21 | + The author disclaims all warranties with regard to this | |
22 | + software, including all implied warranties of merchantability | |
23 | + and fitness. In no event shall the author be liable for any | |
24 | + special, indirect or consequential damages or any damages | |
25 | + whatsoever resulting from loss of use, data or profits, whether | |
26 | + in an action of contract, negligence or other tortious action, | |
27 | + arising out of or in connection with the use or performance of | |
28 | + this software. | |
29 | +*/ | |
30 | + | |
31 | +/** \file | |
32 | + * \brief Board specific joystick driver header for the Fletchtronics BUMBLEB. | |
33 | + * \copydetails Group_Joystick_BUMBLEB | |
34 | + * | |
35 | + * \note This file should not be included directly. It is automatically included as needed by the joystick driver | |
36 | + * dispatch header located in LUFA/Drivers/Board/Joystick.h. | |
37 | + */ | |
38 | + | |
39 | +/** \ingroup Group_Joystick | |
40 | + * \defgroup Group_Joystick_BUMBLEB BUMBLEB | |
41 | + * \brief Board specific joystick driver header for the Fletchtronics BUMBLEB. | |
42 | + * | |
43 | + * Board specific joystick driver header for the Fletchtronics BUMBLEB (http://fletchtronics.net/bumble-b). The BUMBLEB | |
44 | + * third-party board does not include any on-board peripherals, but does have an officially recommended external peripheral | |
45 | + * layout for buttons, LEDs and a Joystick. | |
46 | + * | |
47 | + * <table> | |
48 | + * <tr><th>Left Port Pin</th><th>Up Port Pin</th><th>Right Port Pin</th><th>Down Port Pin</th><th>Press Port Pin</th></tr> | |
49 | + * <tr><td>PORTD.2</td><td>PORTD.3</td><td>PORTD.0</td><td>PORTD.1</td><td>PORTD.4</td></tr> | |
50 | + * </table> | |
51 | + * | |
52 | + * @{ | |
53 | + */ | |
54 | + | |
55 | +#ifndef __JOYSTICK_BUMBLEB_H__ | |
56 | +#define __JOYSTICK_BUMBLEB_H__ | |
57 | + | |
58 | + /* Includes: */ | |
59 | + #include "../../../../Common/Common.h" | |
60 | + | |
61 | + /* Enable C linkage for C++ Compilers: */ | |
62 | + #if defined(__cplusplus) | |
63 | + extern "C" { | |
64 | + #endif | |
65 | + | |
66 | + /* Preprocessor Checks: */ | |
67 | + #if !defined(__INCLUDE_FROM_JOYSTICK_H) | |
68 | + #error Do not include this file directly. Include LUFA/Drivers/Board/Joystick.h instead. | |
69 | + #endif | |
70 | + | |
71 | + /* Private Interface - For use in library only: */ | |
72 | + #if !defined(__DOXYGEN__) | |
73 | + /* Macros: */ | |
74 | + #define JOY_MASK ((1 << 0) | (1 << 1) | (1 << 2) | (1 << 3) | (1 << 4)) | |
75 | + #endif | |
76 | + | |
77 | + /* Public Interface - May be used in end-application: */ | |
78 | + /* Macros: */ | |
79 | + /** Mask for the joystick being pushed in the left direction. */ | |
80 | + #define JOY_LEFT (1 << 2) | |
81 | + | |
82 | + /** Mask for the joystick being pushed in the upward direction. */ | |
83 | + #define JOY_UP (1 << 3) | |
84 | + | |
85 | + /** Mask for the joystick being pushed in the right direction. */ | |
86 | + #define JOY_RIGHT (1 << 0) | |
87 | + | |
88 | + /** Mask for the joystick being pushed in the downward direction. */ | |
89 | + #define JOY_DOWN (1 << 1) | |
90 | + | |
91 | + /** Mask for the joystick being pushed inward. */ | |
92 | + #define JOY_PRESS (1 << 4) | |
93 | + | |
94 | + /* Inline Functions: */ | |
95 | + #if !defined(__DOXYGEN__) | |
96 | + static inline void Joystick_Init(void) | |
97 | + { | |
98 | + DDRD &= ~JOY_MASK; | |
99 | + PORTD |= JOY_MASK; | |
100 | + } | |
101 | + | |
102 | + static inline void Joystick_Disable(void) | |
103 | + { | |
104 | + DDRD &= ~JOY_MASK; | |
105 | + PORTD &= ~JOY_MASK; | |
106 | + } | |
107 | + | |
108 | + static inline uint8_t Joystick_GetStatus(void) ATTR_WARN_UNUSED_RESULT; | |
109 | + static inline uint8_t Joystick_GetStatus(void) | |
110 | + { | |
111 | + return (uint8_t)(~PIND & JOY_MASK); | |
112 | + } | |
113 | + #endif | |
114 | + | |
115 | + /* Disable C linkage for C++ Compilers: */ | |
116 | + #if defined(__cplusplus) | |
117 | + } | |
118 | + #endif | |
119 | + | |
120 | +#endif | |
121 | + | |
122 | +/** @} */ | |
123 | + | ... | ... |
src/lufa-LUFA-170418/LUFA/Drivers/Board/AVR8/PINGUI/LEDs.h
0 → 100644
... | ... | @@ -0,0 +1,149 @@ |
1 | +/* | |
2 | + LUFA Library | |
3 | + Copyright (C) Dean Camera, 2017. | |
4 | + | |
5 | + dean [at] fourwalledcubicle [dot] com | |
6 | + www.lufa-lib.org | |
7 | +*/ | |
8 | + | |
9 | +/* | |
10 | + Copyright 2017 Dean Camera (dean [at] fourwalledcubicle [dot] com) | |
11 | + | |
12 | + Permission to use, copy, modify, distribute, and sell this | |
13 | + software and its documentation for any purpose is hereby granted | |
14 | + without fee, provided that the above copyright notice appear in | |
15 | + all copies and that both that the copyright notice and this | |
16 | + permission notice and warranty disclaimer appear in supporting | |
17 | + documentation, and that the name of the author not be used in | |
18 | + advertising or publicity pertaining to distribution of the | |
19 | + software without specific, written prior permission. | |
20 | + | |
21 | + The author disclaims all warranties with regard to this | |
22 | + software, including all implied warranties of merchantability | |
23 | + and fitness. In no event shall the author be liable for any | |
24 | + special, indirect or consequential damages or any damages | |
25 | + whatsoever resulting from loss of use, data or profits, whether | |
26 | + in an action of contract, negligence or other tortious action, | |
27 | + arising out of or in connection with the use or performance of | |
28 | + this software. | |
29 | +*/ | |
30 | + | |
31 | +/** \file | |
32 | + * \brief Board specific LED driver header for the Fletchtronics BUMBLEB. | |
33 | + * \copydetails Group_LEDs_BUMBLEB | |
34 | + * | |
35 | + * \note This file should not be included directly. It is automatically included as needed by the LEDs driver | |
36 | + * dispatch header located in LUFA/Drivers/Board/LEDs.h. | |
37 | + */ | |
38 | + | |
39 | +/** \ingroup Group_LEDs | |
40 | + * \defgroup Group_LEDs_BUMBLEB BUMBLEB | |
41 | + * \brief Board specific LED driver header for the Fletchtronics BUMBLEB. | |
42 | + * | |
43 | + * Board specific LED driver header for the Fletchtronics BUMBLEB (http://fletchtronics.net/bumble-b). The BUMBLEB | |
44 | + * third-party board does not include any on-board peripherals, but does have an officially recommended external | |
45 | + * peripheral layout for buttons, LEDs and a Joystick. | |
46 | + * | |
47 | + * <table> | |
48 | + * <tr><th>Name</th><th>Color</th><th>Info</th><th>Active Level</th><th>Port Pin</th></tr> | |
49 | + * <tr><td>LEDS_LED1</td><td>N/A</td><td>User Supplied</td><td>High</td><td>PORTB.4</td></tr> | |
50 | + * <tr><td>LEDS_LED2</td><td>N/A</td><td>User Supplied</td><td>High</td><td>PORTB.5</td></tr> | |
51 | + * <tr><td>LEDS_LED3</td><td>N/A</td><td>User Supplied</td><td>High</td><td>PORTB.6</td></tr> | |
52 | + * <tr><td>LEDS_LED4</td><td>N/A</td><td>User Supplied</td><td>High</td><td>PORTB.7</td></tr> | |
53 | + * </table> | |
54 | + * | |
55 | + * @{ | |
56 | + */ | |
57 | + | |
58 | +#ifndef __LEDS_BUMBLEB_H__ | |
59 | +#define __LEDS_BUMBLEB_H__ | |
60 | + | |
61 | + /* Includes: */ | |
62 | + #include "../../../../Common/Common.h" | |
63 | + | |
64 | + /* Enable C linkage for C++ Compilers: */ | |
65 | + #if defined(__cplusplus) | |
66 | + extern "C" { | |
67 | + #endif | |
68 | + | |
69 | + /* Preprocessor Checks: */ | |
70 | + #if !defined(__INCLUDE_FROM_LEDS_H) | |
71 | + #error Do not include this file directly. Include LUFA/Drivers/Board/LEDS.h instead. | |
72 | + #endif | |
73 | + | |
74 | + /* Public Interface - May be used in end-application: */ | |
75 | + /* Macros: */ | |
76 | + /** LED mask for the first LED on the board. */ | |
77 | + #define LEDS_LED1 (1 << 4) | |
78 | + | |
79 | + /** LED mask for the second LED on the board. */ | |
80 | + #define LEDS_LED2 (1 << 5) | |
81 | + | |
82 | + /** LED mask for the third LED on the board. */ | |
83 | + #define LEDS_LED3 (1 << 6) | |
84 | + | |
85 | + /** LED mask for the fourth LED on the board. */ | |
86 | + #define LEDS_LED4 (1 << 7) | |
87 | + | |
88 | + /** LED mask for all the LEDs on the board. */ | |
89 | + #define LEDS_ALL_LEDS (LEDS_LED1 | LEDS_LED2 | LEDS_LED3 | LEDS_LED4) | |
90 | + | |
91 | + /** LED mask for none of the board LEDs. */ | |
92 | + #define LEDS_NO_LEDS 0 | |
93 | + | |
94 | + /* Inline Functions: */ | |
95 | + #if !defined(__DOXYGEN__) | |
96 | + static inline void LEDs_Init(void) | |
97 | + { | |
98 | + DDRB |= LEDS_ALL_LEDS; | |
99 | + PORTB &= ~LEDS_ALL_LEDS; | |
100 | + } | |
101 | + | |
102 | + static inline void LEDs_Disable(void) | |
103 | + { | |
104 | + DDRB &= ~LEDS_ALL_LEDS; | |
105 | + PORTB &= ~LEDS_ALL_LEDS; | |
106 | + } | |
107 | + | |
108 | + static inline void LEDs_TurnOnLEDs(const uint8_t LedMask) | |
109 | + { | |
110 | + PORTB |= LedMask; | |
111 | + } | |
112 | + | |
113 | + static inline void LEDs_TurnOffLEDs(const uint8_t LedMask) | |
114 | + { | |
115 | + PORTB &= ~LedMask; | |
116 | + } | |
117 | + | |
118 | + static inline void LEDs_SetAllLEDs(const uint8_t LedMask) | |
119 | + { | |
120 | + PORTB = ((PORTB & ~LEDS_ALL_LEDS) | LedMask); | |
121 | + } | |
122 | + | |
123 | + static inline void LEDs_ChangeLEDs(const uint8_t LedMask, | |
124 | + const uint8_t ActiveMask) | |
125 | + { | |
126 | + PORTB = ((PORTB & ~LedMask) | ActiveMask); | |
127 | + } | |
128 | + | |
129 | + static inline void LEDs_ToggleLEDs(const uint8_t LEDMask) | |
130 | + { | |
131 | + PINB = LEDMask; | |
132 | + } | |
133 | + | |
134 | + static inline uint8_t LEDs_GetLEDs(void) ATTR_WARN_UNUSED_RESULT; | |
135 | + static inline uint8_t LEDs_GetLEDs(void) | |
136 | + { | |
137 | + return (PORTB & LEDS_ALL_LEDS); | |
138 | + } | |
139 | + #endif | |
140 | + | |
141 | + /* Disable C linkage for C++ Compilers: */ | |
142 | + #if defined(__cplusplus) | |
143 | + } | |
144 | + #endif | |
145 | + | |
146 | +#endif | |
147 | + | |
148 | +/** @} */ | |
149 | + | ... | ... |