mikroSDK Reference Manual
hal_adc.h
Go to the documentation of this file.
1/****************************************************************************
2**
3** Copyright (C) 2024 MikroElektronika d.o.o.
4** Contact: https://www.mikroe.com/contact
5**
6** This file is part of the mikroSDK package
7**
8** Commercial License Usage
9**
10** Licensees holding valid commercial NECTO compilers AI licenses may use this
11** file in accordance with the commercial license agreement provided with the
12** Software or, alternatively, in accordance with the terms contained in
13** a written agreement between you and The MikroElektronika Company.
14** For licensing terms and conditions see
15** https://www.mikroe.com/legal/software-license-agreement.
16** For further information use the contact form at
17** https://www.mikroe.com/contact.
18**
19**
20** GNU Lesser General Public License Usage
21**
22** Alternatively, this file may be used for
23** non-commercial projects under the terms of the GNU Lesser
24** General Public License version 3 as published by the Free Software
25** Foundation: https://www.gnu.org/licenses/lgpl-3.0.html.
26**
27** The above copyright notice and this permission notice shall be
28** included in all copies or substantial portions of the Software.
29**
30** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
31** OF MERCHANTABILITY, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
32** TO THE WARRANTIES FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
33** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
34** DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT
35** OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE
36** OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
37**
38****************************************************************************/
44#ifndef _HAL_ADC_H_
45#define _HAL_ADC_H_
46
47#ifdef __cplusplus
48extern "C"{
49#endif
50
51#include "hal_target.h"
52
61typedef struct
62{
63 handle_t *hal_adc_handle;
64 handle_t *drv_adc_handle;
67
82
99
109
140
151typedef struct
152{
153 handle_t handle;
155} hal_adc_t;
156
213
241err_t hal_adc_open( handle_t *handle, bool hal_obj_open_state );
242
263err_t hal_adc_set_resolution( handle_t *handle, hal_adc_config_t *config );
264
285err_t hal_adc_set_vref_input( handle_t *handle, hal_adc_config_t *config );
286
306void hal_adc_set_vref_value( handle_t *handle, hal_adc_config_t *config );
307
322err_t hal_adc_read( handle_t *handle, uint16_t *readDatabuf );
323
338err_t hal_adc_read_voltage( handle_t *handle, float *readDatabuf );
339
353err_t hal_adc_close( handle_t *handle );
354
355 // haladcgroup
356 // halgroup
357 // pergroup
358
359#ifdef __cplusplus
360}
361#endif
362
363#endif // _HAL_ADC_H_
364// ------------------------------------------------------------------------- END
err_t hal_adc_open(handle_t *handle, bool hal_obj_open_state)
Open the ADC HAL layer object on selected pin.
err_t hal_adc_set_vref_input(handle_t *handle, hal_adc_config_t *config)
Set ADC HAL reference voltage source to desired value.
err_t hal_adc_read_voltage(handle_t *handle, float *readDatabuf)
Read analog voltage value on pin.
err_t hal_adc_read(handle_t *handle, uint16_t *readDatabuf)
Read analog value on pin.
err_t hal_adc_set_resolution(handle_t *handle, hal_adc_config_t *config)
Set ADC HAL sample resolution.
err_t hal_adc_close(handle_t *handle)
Close ADC HAL layer object.
void hal_adc_configure_default(hal_adc_config_t *config)
Configure ADC HAL configuration structure..
void hal_adc_set_vref_value(handle_t *handle, hal_adc_config_t *config)
Set ADC HAL reference voltage value to desired value.
hal_adc_vref_t
Definition hal_adc.h:104
@ HAL_ADC_VREF_DEFAULT
Definition hal_adc.h:107
@ HAL_ADC_VREF_EXTERNAL
Definition hal_adc.h:105
@ HAL_ADC_VREF_INTERNAL
Definition hal_adc.h:106
hal_adc_resolution_t
Definition hal_adc.h:87
@ HAL_ADC_RESOLUTION_10_BIT
Definition hal_adc.h:91
@ HAL_ADC_RESOLUTION_NOT_SET
Definition hal_adc.h:88
@ HAL_ADC_RESOLUTION_8_BIT
Definition hal_adc.h:90
@ HAL_ADC_RESOLUTION_16_BIT
Definition hal_adc.h:94
@ HAL_ADC_RESOLUTION_14_BIT
Definition hal_adc.h:93
@ HAL_ADC_RESOLUTION_6_BIT
Definition hal_adc.h:89
@ HAL_ADC_RESOLUTION_12_BIT
Definition hal_adc.h:92
hal_adc_err_t
Definition hal_adc.h:72
@ HAL_ADC_ERROR
Definition hal_adc.h:80
@ HAL_ADC_MODULE_ERROR
Definition hal_adc.h:75
@ HAL_ADC_UNSUPPORTED_RESOLUTION
Definition hal_adc.h:77
@ HAL_ADC_WRONG_PIN
Definition hal_adc.h:74
@ HAL_ADC_SUCCESS
Definition hal_adc.h:73
@ HAL_ADC_WRONG_CHANNEL
Definition hal_adc.h:79
@ HAL_ADC_UNSUPPORTED_VREF
Definition hal_adc.h:78
HAL target macros and typedefs.
int32_t err_t
Definition hal_target.h:64
hal_ll_pin_name_t hal_pin_name_t
Definition hal_target.h:60
ADC HAL initialization configuration structure, consisted of the following fields :
Definition hal_adc.h:134
hal_adc_vref_t vref_input
Definition hal_adc.h:137
hal_pin_name_t pin
Definition hal_adc.h:135
hal_adc_resolution_t resolution
Definition hal_adc.h:136
float vref_value
Definition hal_adc.h:138
ADC HAL level handle.
Definition hal_adc.h:62
handle_t * hal_adc_handle
Definition hal_adc.h:63
handle_t * drv_adc_handle
Definition hal_adc.h:64
bool init_state
Definition hal_adc.h:65
ADC HAL context structure, consisted of the following fields :
Definition hal_adc.h:152
hal_adc_config_t config
Definition hal_adc.h:154
handle_t handle
Definition hal_adc.h:153