/*
 * SPDX-FileCopyrightText: 2015-2021 Espressif Systems (Shanghai) CO LTD
 *
 * SPDX-License-Identifier: Apache-2.0
 */

// The HAL layer for ADC (common part)

#include "hal/adc_hal.h"
#include "hal/adc_hal_conf.h"
#include "hal/adc_types.h"


int adc_hal_hall_convert(void)
{
    int Sens_Vp0;
    int Sens_Vn0;
    int Sens_Vp1;
    int Sens_Vn1;
    int hall_value;
    // convert for 4 times with different phase and outputs
    adc_ll_hall_phase_disable();      // hall phase
    adc_hal_convert( ADC_NUM_1, ADC_CHANNEL_0, &Sens_Vp0 );
    adc_hal_convert( ADC_NUM_1, ADC_CHANNEL_3, &Sens_Vn0 );
    adc_ll_hall_phase_enable();
    adc_hal_convert( ADC_NUM_1, ADC_CHANNEL_0, &Sens_Vp1 );
    adc_hal_convert( ADC_NUM_1, ADC_CHANNEL_3, &Sens_Vn1 );
    hall_value = (Sens_Vp1 - Sens_Vp0) - (Sens_Vn1 - Sens_Vn0);
    return hall_value;
}