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
|
||||
D8 Button F Output PA9
|
||||
D9 Button G Output PC7
|
||||
A0 Joystick Y Output PA0 ADC_IN0
|
||||
A1 Joystick X Output PA1 ADC_IN1
|
||||
A0 Joystick Y Output PA0 ADC1_0
|
||||
A1 Joystick X Output PA1 ADC1_1
|
||||
--------- ----------------- ---------------------------------
|
||||
|
||||
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
|
||||
but with CONFIG_NUCLEO_F401RE_AJOY_MINBUTTONS to eliminate the
|
||||
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
|
||||
==============
|
||||
|
@ -51,7 +51,8 @@
|
||||
/* Configuration ********************************************************************/
|
||||
|
||||
#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
|
||||
#endif
|
||||
|
||||
@ -102,49 +103,67 @@
|
||||
*/
|
||||
|
||||
#ifdef CONFIG_WL_CC3000
|
||||
# define GPIO_WIFI_INT (GPIO_PORTB | GPIO_PIN3 | GPIO_INPUT | GPIO_PULLUP | GPIO_EXTI)
|
||||
# define GPIO_WIFI_EN (GPIO_PORTB | GPIO_PIN4 | GPIO_OUTPUT_CLEAR | GPIO_OUTPUT | GPIO_PULLUP | GPIO_SPEED_50MHz)
|
||||
# define GPIO_WIFI_CS (GPIO_PORTB | GPIO_PIN6 | GPIO_OUTPUT_SET | GPIO_OUTPUT | GPIO_PULLUP | GPIO_SPEED_50MHz)
|
||||
# define GPIO_D14 (GPIO_PORTB | GPIO_PIN9 | GPIO_OUTPUT_CLEAR | 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_D0 (GPIO_PORTA | GPIO_PIN3 | 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 )
|
||||
# define GPIO_WIFI_INT (GPIO_PORTB | GPIO_PIN3 | GPIO_INPUT | \
|
||||
GPIO_PULLUP | GPIO_EXTI)
|
||||
# define GPIO_WIFI_EN (GPIO_PORTB | GPIO_PIN4 | GPIO_OUTPUT_CLEAR | \
|
||||
GPIO_OUTPUT | GPIO_PULLUP | GPIO_SPEED_50MHz)
|
||||
# define GPIO_WIFI_CS (GPIO_PORTB | GPIO_PIN6 | GPIO_OUTPUT_SET | \
|
||||
GPIO_OUTPUT | GPIO_PULLUP | GPIO_SPEED_50MHz)
|
||||
# define GPIO_D14 (GPIO_PORTB | GPIO_PIN9 | GPIO_OUTPUT_CLEAR | \
|
||||
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_D0 (GPIO_PORTA | GPIO_PIN3 | 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
|
||||
|
||||
/* SPI1 off */
|
||||
|
||||
#define GPIO_SPI1_MOSI_OFF (GPIO_INPUT|GPIO_PULLDOWN|GPIO_PORTA|GPIO_PIN7)
|
||||
#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)
|
||||
#define GPIO_SPI1_MOSI_OFF (GPIO_INPUT | GPIO_PULLDOWN | \
|
||||
GPIO_PORTA | GPIO_PIN7)
|
||||
#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 */
|
||||
|
||||
#ifdef CONFIG_WL_CC3000
|
||||
# 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
|
||||
|
||||
#ifdef HAVE_MMCSD
|
||||
# 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
|
||||
|
||||
/* SPI chip selects */
|
||||
|
||||
#ifdef CONFIG_WL_CC3000
|
||||
# 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
|
||||
|
||||
#ifdef HAVE_MMCSD
|
||||
# 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
|
||||
|
||||
/* Devices on the onboard bus.
|
||||
@ -162,13 +181,15 @@
|
||||
|
||||
#ifdef CONFIG_WL_CC3000
|
||||
# define GPIO_GPIO0_INPUT \
|
||||
(GPIO_INPUT|GPIO_PULLUP|GPIO_PORTB|GPIO_PIN8)
|
||||
(GPIO_INPUT | GPIO_PULLUP | GPIO_PORTB | GPIO_PIN8)
|
||||
# define GPIO_GPIO1_INPUT \
|
||||
(GPIO_INPUT|GPIO_PULLUP|GPIO_PORTB|GPIO_PIN9)
|
||||
(GPIO_INPUT | GPIO_PULLUP | GPIO_PORTB | GPIO_PIN9)
|
||||
# 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 \
|
||||
(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
|
||||
|
||||
/* Itead Joystick Shield
|
||||
@ -187,8 +208,8 @@
|
||||
* D7 Button A Output PA8
|
||||
* D8 Button F Output PA9
|
||||
* D9 Button G Output PC7
|
||||
* A0 Joystick Y Output PA0 ADC_IN0
|
||||
* A1 Joystick X Output PA1 ADC_IN1
|
||||
* A0 Joystick Y Output PA0 ADC1_0
|
||||
* A1 Joystick X Output PA1 ADC1_1
|
||||
* --------- ----------------- ---------------------------------
|
||||
*
|
||||
* 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 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 \
|
||||
(GPIO_INPUT | GPIO_FLOAT |GPIO_EXTI | GPIO_PORTB | GPIO_PIN10)
|
||||
(GPIO_INPUT | GPIO_PULLUP |GPIO_EXTI | GPIO_PORTB | GPIO_PIN10)
|
||||
#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 \
|
||||
(GPIO_INPUT | GPIO_FLOAT |GPIO_EXTI | GPIO_PORTB | GPIO_PIN5)
|
||||
(GPIO_INPUT | GPIO_PULLUP |GPIO_EXTI | GPIO_PORTB | GPIO_PIN5)
|
||||
#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 \
|
||||
(GPIO_INPUT | GPIO_FLOAT |GPIO_EXTI | GPIO_PORTA | GPIO_PIN9)
|
||||
(GPIO_INPUT | GPIO_PULLUP |GPIO_EXTI | GPIO_PORTA | GPIO_PIN9)
|
||||
#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:
|
||||
*
|
||||
|
@ -282,7 +282,7 @@ static int ajoy_sample(FAR const struct ajoy_lowerhalf_s *lower,
|
||||
/* Sample the discrete button inputs */
|
||||
|
||||
sample->as_buttons = ajoy_buttons(lower);
|
||||
ivdbg("Returning: %02x\n", AJOY_SUPPORTED);
|
||||
ivdbg("Returning: %02x\n", sample->as_buttons);
|
||||
return OK;
|
||||
}
|
||||
|
||||
@ -426,6 +426,7 @@ static void ajoy_disable(void)
|
||||
static int ajoy_interrupt(int irq, FAR void *context)
|
||||
{
|
||||
DEBUGASSERT(g_ajoyhandler);
|
||||
|
||||
if (g_ajoyhandler)
|
||||
{
|
||||
g_ajoyhandler(&g_ajoylower, g_ajoyarg);
|
||||
|
Loading…
Reference in New Issue
Block a user