Nucleo-f4x1re: Add pull-ups to joystick button GPIOs
This commit is contained in:
parent
3cc6bee189
commit
6ea9af3736
@ -529,8 +529,8 @@ Shields
|
|||||||
D7 Button A Output PA8
|
D7 Button A Output PA8
|
||||||
D8 Button F Output PA9
|
D8 Button F Output PA9
|
||||||
D9 Button G Output PC7
|
D9 Button G Output PC7
|
||||||
A0 Joystick Y Output PA0 ADC_IN0
|
A0 Joystick Y Output PA0 ADC1_0
|
||||||
A1 Joystick X Output PA1 ADC_IN1
|
A1 Joystick X Output PA1 ADC1_1
|
||||||
--------- ----------------- ---------------------------------
|
--------- ----------------- ---------------------------------
|
||||||
|
|
||||||
All buttons are pulled on the shield. A sensed low value indicates
|
All buttons are pulled on the shield. A sensed low value indicates
|
||||||
@ -584,7 +584,8 @@ Shields
|
|||||||
default USART1 configuration. I am currently running with USART1
|
default USART1 configuration. I am currently running with USART1
|
||||||
but with CONFIG_NUCLEO_F401RE_AJOY_MINBUTTONS to eliminate the
|
but with CONFIG_NUCLEO_F401RE_AJOY_MINBUTTONS to eliminate the
|
||||||
conflict.
|
conflict.
|
||||||
- Current showstopper: I am not getting joystick button interrupts.
|
- Current showstopper: I appear to be getting infinite interrupts as
|
||||||
|
soon as joystick button interrupts are enabled.
|
||||||
|
|
||||||
Configurations
|
Configurations
|
||||||
==============
|
==============
|
||||||
|
@ -51,7 +51,8 @@
|
|||||||
/* Configuration ********************************************************************/
|
/* Configuration ********************************************************************/
|
||||||
|
|
||||||
#define HAVE_MMCSD 1
|
#define HAVE_MMCSD 1
|
||||||
#if !defined(CONFIG_STM32_SDIO) || !defined(CONFIG_MMCSD) || !defined(CONFIG_MMCSD_SDIO)
|
#if !defined(CONFIG_STM32_SDIO) || !defined(CONFIG_MMCSD) || \
|
||||||
|
!defined(CONFIG_MMCSD_SDIO)
|
||||||
# undef HAVE_MMCSD
|
# undef HAVE_MMCSD
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -102,49 +103,67 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#ifdef CONFIG_WL_CC3000
|
#ifdef CONFIG_WL_CC3000
|
||||||
# define GPIO_WIFI_INT (GPIO_PORTB | GPIO_PIN3 | GPIO_INPUT | GPIO_PULLUP | GPIO_EXTI)
|
# define GPIO_WIFI_INT (GPIO_PORTB | GPIO_PIN3 | GPIO_INPUT | \
|
||||||
# define GPIO_WIFI_EN (GPIO_PORTB | GPIO_PIN4 | GPIO_OUTPUT_CLEAR | GPIO_OUTPUT | GPIO_PULLUP | GPIO_SPEED_50MHz)
|
GPIO_PULLUP | GPIO_EXTI)
|
||||||
# define GPIO_WIFI_CS (GPIO_PORTB | GPIO_PIN6 | GPIO_OUTPUT_SET | GPIO_OUTPUT | GPIO_PULLUP | GPIO_SPEED_50MHz)
|
# define GPIO_WIFI_EN (GPIO_PORTB | GPIO_PIN4 | GPIO_OUTPUT_CLEAR | \
|
||||||
# define GPIO_D14 (GPIO_PORTB | GPIO_PIN9 | GPIO_OUTPUT_CLEAR | GPIO_OUTPUT | GPIO_PULLUP | GPIO_SPEED_50MHz)
|
GPIO_OUTPUT | GPIO_PULLUP | GPIO_SPEED_50MHz)
|
||||||
# define GPIO_D15 (GPIO_PORTB | GPIO_PIN8 | GPIO_OUTPUT_CLEAR | GPIO_OUTPUT | GPIO_PULLUP | GPIO_SPEED_50MHz)
|
# define GPIO_WIFI_CS (GPIO_PORTB | GPIO_PIN6 | GPIO_OUTPUT_SET | \
|
||||||
# define GPIO_D0 (GPIO_PORTA | GPIO_PIN3 | GPIO_INPUT | GPIO_PULLUP )
|
GPIO_OUTPUT | GPIO_PULLUP | GPIO_SPEED_50MHz)
|
||||||
# define GPIO_D1 (GPIO_PORTA | GPIO_PIN2 | GPIO_OUTPUT_CLEAR | GPIO_PULLUP )
|
# define GPIO_D14 (GPIO_PORTB | GPIO_PIN9 | GPIO_OUTPUT_CLEAR | \
|
||||||
# define GPIO_D2 (GPIO_PORTA | GPIO_PIN10 | GPIO_OUTPUT_CLEAR | GPIO_OUTPUT | GPIO_PULLUP | GPIO_SPEED_50MHz)
|
GPIO_OUTPUT | GPIO_PULLUP | GPIO_SPEED_50MHz)
|
||||||
|
# define GPIO_D15 (GPIO_PORTB | GPIO_PIN8 | GPIO_OUTPUT_CLEAR | \
|
||||||
# define GPIO_A0 (GPIO_PORTA | GPIO_PIN0 | GPIO_OUTPUT_SET | GPIO_OUTPUT | GPIO_PULLUP | GPIO_SPEED_50MHz)
|
GPIO_OUTPUT | GPIO_PULLUP | GPIO_SPEED_50MHz)
|
||||||
# define GPIO_A1 (GPIO_PORTA | GPIO_PIN1 | GPIO_OUTPUT_SET | GPIO_OUTPUT | GPIO_PULLUP | GPIO_SPEED_50MHz)
|
# define GPIO_D0 (GPIO_PORTA | GPIO_PIN3 | GPIO_INPUT | \
|
||||||
# define GPIO_A2 (GPIO_PORTA | GPIO_PIN4 | GPIO_INPUT | GPIO_PULLUP )
|
GPIO_PULLUP)
|
||||||
# define GPIO_A3 (GPIO_PORTB | GPIO_PIN0 | GPIO_INPUT | GPIO_PULLUP )
|
# define GPIO_D1 (GPIO_PORTA | GPIO_PIN2 | GPIO_OUTPUT_CLEAR | \
|
||||||
|
GPIO_PULLUP)
|
||||||
|
# define GPIO_D2 (GPIO_PORTA | GPIO_PIN10 | GPIO_OUTPUT_CLEAR | \
|
||||||
|
GPIO_OUTPUT | GPIO_PULLUP | GPIO_SPEED_50MHz)
|
||||||
|
# define GPIO_A0 (GPIO_PORTA | GPIO_PIN0 | GPIO_OUTPUT_SET | \
|
||||||
|
GPIO_OUTPUT | GPIO_PULLUP | GPIO_SPEED_50MHz)
|
||||||
|
# define GPIO_A1 (GPIO_PORTA | GPIO_PIN1 | GPIO_OUTPUT_SET | \
|
||||||
|
GPIO_OUTPUT | GPIO_PULLUP | GPIO_SPEED_50MHz)
|
||||||
|
# define GPIO_A2 (GPIO_PORTA | GPIO_PIN4 | GPIO_INPUT | \
|
||||||
|
GPIO_PULLUP)
|
||||||
|
# define GPIO_A3 (GPIO_PORTB | GPIO_PIN0 | GPIO_INPUT | \
|
||||||
|
GPIO_PULLUP)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* SPI1 off */
|
/* SPI1 off */
|
||||||
|
|
||||||
#define GPIO_SPI1_MOSI_OFF (GPIO_INPUT|GPIO_PULLDOWN|GPIO_PORTA|GPIO_PIN7)
|
#define GPIO_SPI1_MOSI_OFF (GPIO_INPUT | GPIO_PULLDOWN | \
|
||||||
#define GPIO_SPI1_MISO_OFF (GPIO_INPUT|GPIO_PULLDOWN|GPIO_PORTA|GPIO_PIN6)
|
GPIO_PORTA | GPIO_PIN7)
|
||||||
#define GPIO_SPI1_SCK_OFF (GPIO_INPUT|GPIO_PULLDOWN|GPIO_PORTA|GPIO_PIN5)
|
#define GPIO_SPI1_MISO_OFF (GPIO_INPUT | GPIO_PULLDOWN | \
|
||||||
|
GPIO_PORTA | GPIO_PIN6)
|
||||||
|
#define GPIO_SPI1_SCK_OFF (GPIO_INPUT | GPIO_PULLDOWN | \
|
||||||
|
GPIO_PORTA | GPIO_PIN5)
|
||||||
|
|
||||||
/* SPI1 chip selects off */
|
/* SPI1 chip selects off */
|
||||||
|
|
||||||
#ifdef CONFIG_WL_CC3000
|
#ifdef CONFIG_WL_CC3000
|
||||||
# define GPIO_SPI_CS_WIFI_OFF \
|
# define GPIO_SPI_CS_WIFI_OFF \
|
||||||
(GPIO_INPUT|GPIO_PULLDOWN|GPIO_SPEED_2MHz|GPIO_PORTB|GPIO_PIN6)
|
(GPIO_INPUT | GPIO_PULLDOWN | GPIO_SPEED_2MHz | \
|
||||||
|
GPIO_PORTB | GPIO_PIN6)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef HAVE_MMCSD
|
#ifdef HAVE_MMCSD
|
||||||
# define GPIO_SPI_CS_SD_CARD_OFF \
|
# define GPIO_SPI_CS_SD_CARD_OFF \
|
||||||
(GPIO_INPUT|GPIO_PULLDOWN|GPIO_SPEED_2MHz|GPIO_PORTB|GPIO_PIN5)
|
(GPIO_INPUT | GPIO_PULLDOWN | GPIO_SPEED_2MHz | \
|
||||||
|
GPIO_PORTB | GPIO_PIN5)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* SPI chip selects */
|
/* SPI chip selects */
|
||||||
|
|
||||||
#ifdef CONFIG_WL_CC3000
|
#ifdef CONFIG_WL_CC3000
|
||||||
# define GPIO_SPI_CS_WIFI \
|
# define GPIO_SPI_CS_WIFI \
|
||||||
(GPIO_OUTPUT|GPIO_PUSHPULL|GPIO_SPEED_2MHz|GPIO_OUTPUT_SET|GPIO_PORTB|GPIO_PIN6)
|
(GPIO_OUTPUT | GPIO_PUSHPULL | GPIO_SPEED_2MHz | \
|
||||||
|
GPIO_OUTPUT_SET | GPIO_PORTB | GPIO_PIN6)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef HAVE_MMCSD
|
#ifdef HAVE_MMCSD
|
||||||
# define GPIO_SPI_CS_SD_CARD \
|
# define GPIO_SPI_CS_SD_CARD \
|
||||||
(GPIO_OUTPUT|GPIO_PUSHPULL|GPIO_SPEED_2MHz|GPIO_OUTPUT_SET|GPIO_PORTB|GPIO_PIN5)
|
(GPIO_OUTPUT | GPIO_PUSHPULL | GPIO_SPEED_2MHz | \
|
||||||
|
GPIO_OUTPUT_SET | GPIO_PORTB | GPIO_PIN5)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Devices on the onboard bus.
|
/* Devices on the onboard bus.
|
||||||
@ -162,13 +181,15 @@
|
|||||||
|
|
||||||
#ifdef CONFIG_WL_CC3000
|
#ifdef CONFIG_WL_CC3000
|
||||||
# define GPIO_GPIO0_INPUT \
|
# define GPIO_GPIO0_INPUT \
|
||||||
(GPIO_INPUT|GPIO_PULLUP|GPIO_PORTB|GPIO_PIN8)
|
(GPIO_INPUT | GPIO_PULLUP | GPIO_PORTB | GPIO_PIN8)
|
||||||
# define GPIO_GPIO1_INPUT \
|
# define GPIO_GPIO1_INPUT \
|
||||||
(GPIO_INPUT|GPIO_PULLUP|GPIO_PORTB|GPIO_PIN9)
|
(GPIO_INPUT | GPIO_PULLUP | GPIO_PORTB | GPIO_PIN9)
|
||||||
# define GPIO_GPIO0_OUTPUT \
|
# define GPIO_GPIO0_OUTPUT \
|
||||||
(GPIO_OUTPUT|GPIO_PUSHPULL|GPIO_SPEED_2MHz|GPIO_OUTPUT_CLEAR|GPIO_PORTB|GPIO_PIN8)
|
(GPIO_OUTPUT | GPIO_PUSHPULL | GPIO_SPEED_2MHz | \
|
||||||
|
GPIO_OUTPUT_CLEAR | GPIO_PORTB | GPIO_PIN8)
|
||||||
# define GPIO_GPIO1_OUTPUT \
|
# define GPIO_GPIO1_OUTPUT \
|
||||||
(GPIO_OUTPUT|GPIO_PUSHPULL|GPIO_SPEED_2MHz|GPIO_OUTPUT_CLEAR|GPIO_PORTB|GPIO_PIN9)
|
(GPIO_OUTPUT | GPIO_PUSHPULL | GPIO_SPEED_2MHz | \
|
||||||
|
GPIO_OUTPUT_CLEAR | GPIO_PORTB | GPIO_PIN9)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Itead Joystick Shield
|
/* Itead Joystick Shield
|
||||||
@ -187,8 +208,8 @@
|
|||||||
* D7 Button A Output PA8
|
* D7 Button A Output PA8
|
||||||
* D8 Button F Output PA9
|
* D8 Button F Output PA9
|
||||||
* D9 Button G Output PC7
|
* D9 Button G Output PC7
|
||||||
* A0 Joystick Y Output PA0 ADC_IN0
|
* A0 Joystick Y Output PA0 ADC1_0
|
||||||
* A1 Joystick X Output PA1 ADC_IN1
|
* A1 Joystick X Output PA1 ADC1_1
|
||||||
* --------- ----------------- ---------------------------------
|
* --------- ----------------- ---------------------------------
|
||||||
*
|
*
|
||||||
* All buttons are pulled on the shield. A sensed low value indicates
|
* All buttons are pulled on the shield. A sensed low value indicates
|
||||||
@ -205,19 +226,19 @@
|
|||||||
#define ADC_YOUPUT 0 /* Y output is on ADC channel 0 */
|
#define ADC_YOUPUT 0 /* Y output is on ADC channel 0 */
|
||||||
|
|
||||||
#define GPIO_BUTTON_A \
|
#define GPIO_BUTTON_A \
|
||||||
(GPIO_INPUT | GPIO_FLOAT |GPIO_EXTI | GPIO_PORTA | GPIO_PIN8)
|
(GPIO_INPUT | GPIO_PULLUP |GPIO_EXTI | GPIO_PORTA | GPIO_PIN8)
|
||||||
#define GPIO_BUTTON_B \
|
#define GPIO_BUTTON_B \
|
||||||
(GPIO_INPUT | GPIO_FLOAT |GPIO_EXTI | GPIO_PORTB | GPIO_PIN10)
|
(GPIO_INPUT | GPIO_PULLUP |GPIO_EXTI | GPIO_PORTB | GPIO_PIN10)
|
||||||
#define GPIO_BUTTON_C \
|
#define GPIO_BUTTON_C \
|
||||||
(GPIO_INPUT | GPIO_FLOAT |GPIO_EXTI | GPIO_PORTB | GPIO_PIN4)
|
(GPIO_INPUT | GPIO_PULLUP |GPIO_EXTI | GPIO_PORTB | GPIO_PIN4)
|
||||||
#define GPIO_BUTTON_D \
|
#define GPIO_BUTTON_D \
|
||||||
(GPIO_INPUT | GPIO_FLOAT |GPIO_EXTI | GPIO_PORTB | GPIO_PIN5)
|
(GPIO_INPUT | GPIO_PULLUP |GPIO_EXTI | GPIO_PORTB | GPIO_PIN5)
|
||||||
#define GPIO_BUTTON_E \
|
#define GPIO_BUTTON_E \
|
||||||
(GPIO_INPUT | GPIO_FLOAT |GPIO_EXTI | GPIO_PORTB | GPIO_PIN3)
|
(GPIO_INPUT | GPIO_PULLUP |GPIO_EXTI | GPIO_PORTB | GPIO_PIN3)
|
||||||
#define GPIO_BUTTON_F \
|
#define GPIO_BUTTON_F \
|
||||||
(GPIO_INPUT | GPIO_FLOAT |GPIO_EXTI | GPIO_PORTA | GPIO_PIN9)
|
(GPIO_INPUT | GPIO_PULLUP |GPIO_EXTI | GPIO_PORTA | GPIO_PIN9)
|
||||||
#define GPIO_BUTTON_G \
|
#define GPIO_BUTTON_G \
|
||||||
(GPIO_INPUT | GPIO_FLOAT |GPIO_EXTI | GPIO_PORTC | GPIO_PIN7)
|
(GPIO_INPUT | GPIO_PULLUP |GPIO_EXTI | GPIO_PORTC | GPIO_PIN7)
|
||||||
|
|
||||||
/* Itead Joystick Signal interpretation:
|
/* Itead Joystick Signal interpretation:
|
||||||
*
|
*
|
||||||
|
@ -282,7 +282,7 @@ static int ajoy_sample(FAR const struct ajoy_lowerhalf_s *lower,
|
|||||||
/* Sample the discrete button inputs */
|
/* Sample the discrete button inputs */
|
||||||
|
|
||||||
sample->as_buttons = ajoy_buttons(lower);
|
sample->as_buttons = ajoy_buttons(lower);
|
||||||
ivdbg("Returning: %02x\n", AJOY_SUPPORTED);
|
ivdbg("Returning: %02x\n", sample->as_buttons);
|
||||||
return OK;
|
return OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -426,6 +426,7 @@ static void ajoy_disable(void)
|
|||||||
static int ajoy_interrupt(int irq, FAR void *context)
|
static int ajoy_interrupt(int irq, FAR void *context)
|
||||||
{
|
{
|
||||||
DEBUGASSERT(g_ajoyhandler);
|
DEBUGASSERT(g_ajoyhandler);
|
||||||
|
|
||||||
if (g_ajoyhandler)
|
if (g_ajoyhandler)
|
||||||
{
|
{
|
||||||
g_ajoyhandler(&g_ajoylower, g_ajoyarg);
|
g_ajoyhandler(&g_ajoylower, g_ajoyarg);
|
||||||
|
Loading…
Reference in New Issue
Block a user