This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

GPIOTE nRF52 Problem SDK11

Hello,

I am working with the GPIO tasks and events feature on my nRF52832 DK. And I noticed some strange behaviour. I want that two Pins will toggle if some timer events occur. I initialize both pins (P0.18 and P0.19) with the driver functions:

err_code = nrf_drv_gpiote_init();
nrf_drv_gpiote_out_config_t out_config_pin = GPIOTE_CONFIG_OUT_TASK_TOGGLE(false);
err_code = nrf_drv_gpiote_out_init(ARDUINO_8_PIN, &out_config_pin);
APP_ERROR_CHECK(err_code);
nrf_drv_gpiote_out_task_enable(ARDUINO_8_PIN);

nrf_drv_gpiote_out_config_t out_config_pin_19 = GPIOTE_CONFIG_OUT_TASK_TOGGLE(false);
err_code = nrf_drv_gpiote_out_init(ARDUINO_9_PIN, &out_config_pin_19);
APP_ERROR_CHECK(err_code);
nrf_drv_gpiote_out_task_enable(ARDUINO_9_PIN);

The Pins were configured that way that the are lying in different configurationregisters. Now, if I want to compine the gpio task with an timer event I use this driver function to get the gpiote task address:

nrf_drv_gpiote_out_task_addr_get(ARDUINO_8_PIN);
nrf_drv_gpiote_out_task_addr_get(ARDUINO_9_PIN);

Both functions return the same task address. But actually the first function shall return 0x40006000 and the seconde shall return 0x40006004 for the two TASK_OUT[x]. There is a mistake in the driver library?

Thank you in advance,

Florian

Parents
  • I initialized the GPIOs in the beginning of the peripheral initialization and asked for the task address at the end of the peripheral initialization. Maybe some other peripherals changed something in the meantime. If I ask directly after the GPIOTE initialization for the task address everything is fine. Strange. My solution I put the GPIOTE and PPI initialization at the end. Thanks for helping:)

Reply
  • I initialized the GPIOs in the beginning of the peripheral initialization and asked for the task address at the end of the peripheral initialization. Maybe some other peripherals changed something in the meantime. If I ask directly after the GPIOTE initialization for the task address everything is fine. Strange. My solution I put the GPIOTE and PPI initialization at the end. Thanks for helping:)

Children
No Data
Related