예제 #1
0
void nrfx_adc_channel_enable(nrfx_adc_channel_t * const p_channel)
{
    NRFX_ASSERT(!nrfx_adc_is_busy());

    p_channel->p_next = NULL;
    if (m_cb.p_head == NULL)
    {
        m_cb.p_head = p_channel;
    }
    else
    {
        nrfx_adc_channel_t * p_curr_channel = m_cb.p_head;
        while (p_curr_channel->p_next != NULL)
        {
            NRFX_ASSERT(p_channel != p_curr_channel);
            p_curr_channel = p_curr_channel->p_next;
        }
        p_curr_channel->p_next = p_channel;
    }

    NRFX_LOG_INFO("Enabled.");
}
예제 #2
0
void nrfx_adc_channel_disable(nrfx_adc_channel_t * const p_channel)
{
    NRFX_ASSERT(m_cb.p_head);
    NRFX_ASSERT(!nrfx_adc_is_busy());

    nrfx_adc_channel_t * p_curr_channel = m_cb.p_head;
    nrfx_adc_channel_t * p_prev_channel = NULL;
    while (p_curr_channel != p_channel)
    {
        p_prev_channel = p_curr_channel;
        p_curr_channel = p_curr_channel->p_next;
        NRFX_ASSERT(p_curr_channel != NULL);
    }
    if (p_prev_channel)
    {
        p_prev_channel->p_next = p_curr_channel->p_next;
    }
    else
    {
        m_cb.p_head = p_curr_channel->p_next;
    }

    NRFX_LOG_INFO("Disabled.");
}
예제 #3
0
파일: nrfx_adc.c 프로젝트: turon/openthread
void nrfx_adc_all_channels_disable(void)
{
    NRFX_ASSERT(!nrfx_adc_is_busy());

    m_cb.p_head = NULL;
}