sparkfun / Arduino_Apollo3

Arduino core to support the Apollo3 microcontroller from Ambiq Micro
83 stars 39 forks source link

v1.2.3 LowPower_WithWorkAndGPIOInterrupt example modification #480

Open rserranosmith opened 1 year ago

rserranosmith commented 1 year ago

Currently, to disable all pins except for the current pin were using for the interrupt the command is:

  for (int x = 0 ; x < 50 ; x++)
  {
    if(x != INPUT_BUTTON)
      am_hal_gpio_pinconfig(x , g_AM_HAL_GPIO_DISABLE);
  }

however, am_hal_gpio_pinconfig refers to the PAD number, NOT the PIN number (which INPUT_BUTTON is defined using the PIN number). Due to this, a random pin is being kept enabled, rather than the expected pin we've defined. To address this, we simply must change the function to:

  for (int x = 0 ; x < 50 ; x++)
  {
    if(x != ap3_gpio_pin2pad(INPUT_BUTTON))
      am_hal_gpio_pinconfig(x , g_AM_HAL_GPIO_DISABLE);
  }

Here is the link to the code example