static void setup_mux_input_channel_selection(void) { ret_code_t err_code; uint32_t compare_evt_addr_0, compare_evt_addr_1, compare_evt_addr_2, compare_evt_addr_3; uint32_t compare_evt_addr_4, compare_evt_addr_5; uint32_t gpiote_task_addr_0, gpiote_task_addr_1, gpiote_task_addr_2, gpiote_task_addr_3, gpiote_task_addr_4; /* setup timer compare events and gpiote task */ compare_evt_addr_0 = nrf_drv_timer_event_address_get(&m_timer_1, NRF_TIMER_EVENT_COMPARE0); gpiote_task_addr_0 = nrf_drv_gpiote_out_task_addr_get(MUX_INPUT_2); //12us: M2 high compare_evt_addr_1 = nrf_drv_timer_event_address_get(&m_timer_1, NRF_TIMER_EVENT_COMPARE1); gpiote_task_addr_1 = nrf_drv_gpiote_out_task_addr_get(MUX_INPUT_3); //24us: M3 high compare_evt_addr_2 = nrf_drv_timer_event_address_get(&m_timer_1, NRF_TIMER_EVENT_COMPARE2); gpiote_task_addr_2 = nrf_drv_gpiote_out_task_addr_get(MUX_INPUT_2); //36us: M2 low compare_evt_addr_3 = nrf_drv_timer_event_address_get(&m_timer_1, NRF_TIMER_EVENT_COMPARE3); gpiote_task_addr_4 = nrf_drv_gpiote_out_task_addr_get(MUX_INPUT_3); //48us: M3 low /* link task and event via ppi channels */ err_code = nrf_drv_ppi_channel_assign(ppi_channel_0, compare_evt_addr_0, gpiote_task_addr_0); APP_ERROR_CHECK(err_code); err_code = nrf_drv_ppi_channel_assign(ppi_channel_1, compare_evt_addr_1, gpiote_task_addr_1); APP_ERROR_CHECK(err_code); err_code = nrf_drv_ppi_channel_assign(ppi_channel_2, compare_evt_addr_2, gpiote_task_addr_2); APP_ERROR_CHECK(err_code); err_code = nrf_drv_ppi_channel_assign(ppi_channel_4, compare_evt_addr_3, gpiote_task_addr_4); APP_ERROR_CHECK(err_code); /* enable ppi channels */ err_code = nrf_drv_ppi_channel_enable(ppi_channel_0); APP_ERROR_CHECK(err_code); err_code = nrf_drv_ppi_channel_enable(ppi_channel_1); APP_ERROR_CHECK(err_code); err_code = nrf_drv_ppi_channel_enable(ppi_channel_2); APP_ERROR_CHECK(err_code); err_code = nrf_drv_ppi_channel_enable(ppi_channel_3); APP_ERROR_CHECK(err_code); err_code = nrf_drv_ppi_channel_enable(ppi_channel_4); APP_ERROR_CHECK(err_code); }
Hello all, I have question about ppi.
Like code shown above, I'm using ppi.
Here, MUX_INPUT_2 and MUX_INPUT_3 are name of pin.
I'm changing their state: from low to high, or high to low by ppi, automatically.
What I want to ask here is, is there any solution that I can read the state?
For example, after gpiote_task_addr_0, int state = 0 and after gpiote_task_addr_1, int state = 1, ... etc.
I want to read a state by number and read it.
If it is not possible, can you recommend other way for state recognition?
Thanks!