mikroSDK Reference Manual
hal_adc.h
Go to the documentation of this file.
1 /****************************************************************************
2 **
3 ** Copyright (C) 2023 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
48 extern "C"{
49 #endif
50 
51 #include "hal_target.h"
52 
61 typedef struct
62 {
63  handle_t *hal_adc_handle;
64  handle_t *drv_adc_handle;
65  bool init_state;
67 
71 typedef enum
72 {
80  HAL_ADC_ERROR = (-1)
82 
86 typedef enum
87 {
98 
102 typedef enum
103 {
108 
132 typedef struct
133 {
135  hal_adc_resolution_t resolution;
136  hal_adc_vref_t vref_input;
137  float vref_value;
139 
150 typedef struct
151 {
152  handle_t handle;
153  hal_adc_config_t config;
154 } hal_adc_t;
155 
212 
240 err_t hal_adc_open( handle_t *handle, bool hal_obj_open_state );
241 
262 err_t hal_adc_set_resolution( handle_t *handle, hal_adc_config_t *config );
263 
284 err_t hal_adc_set_vref_input( handle_t *handle, hal_adc_config_t *config );
285 
305 void hal_adc_set_vref_value( handle_t *handle, hal_adc_config_t *config );
306 
321 err_t hal_adc_read( handle_t *handle, uint16_t *readDatabuf );
322 
337 err_t hal_adc_read_voltage( handle_t *handle, float *readDatabuf );
338 
352 err_t hal_adc_close( handle_t *handle );
353  // haladcgroup // halgroup // pergroup
357 
358 #ifdef __cplusplus
359 }
360 #endif
361 
362 #endif // _HAL_ADC_H_
363 // ------------------------------------------------------------------------- END
hal_adc_open
err_t hal_adc_open(handle_t *handle, bool hal_obj_open_state)
Open the ADC HAL layer object on selected pin.
HAL_ADC_RESOLUTION_DEFAULT
Definition: hal_adc.h:95
hal_adc_read_voltage
err_t hal_adc_read_voltage(handle_t *handle, float *readDatabuf)
Read analog voltage value on pin.
hal_adc_set_vref_value
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
hal_adc_vref_t
Definition: hal_adc.h:101
HAL_ADC_MODULE_ERROR
Definition: hal_adc.h:74
HAL_ADC_RESOLUTION_6_BIT
Definition: hal_adc.h:88
hal_target.h
HAL target macros and typedefs.
hal_adc_read
err_t hal_adc_read(handle_t *handle, uint16_t *readDatabuf)
Read analog value on pin.
hal_adc_config_t
ADC HAL initialization configuration structure, consisted of the following fields :
Definition: hal_adc.h:131
HAL_ADC_VREF_INTERNAL
Definition: hal_adc.h:104
HAL_ADC_RESOLUTION_14_BIT
Definition: hal_adc.h:92
hal_pin_name_t
hal_ll_pin_name_t hal_pin_name_t
Definition: hal_target.h:59
HAL_ADC_UNSUPPORTED_VREF
Definition: hal_adc.h:77
HAL_ADC_VREF_EXTERNAL
Definition: hal_adc.h:103
HAL_ADC_ERROR
Definition: hal_adc.h:79
HAL_ADC_VREF_DEFAULT
Definition: hal_adc.h:105
HAL_ADC_RESOLUTION_16_BIT
Definition: hal_adc.h:93
HAL_ADC_UNSUPPORTED_RESOLUTION
Definition: hal_adc.h:76
hal_adc_configure_default
void hal_adc_configure_default(hal_adc_config_t *config)
Configure ADC HAL configuration structure..
hal_adc_handle_register_t
ADC HAL level handle.
Definition: hal_adc.h:60
hal_adc_resolution_t
hal_adc_resolution_t
Definition: hal_adc.h:85
HAL_ADC_SUCCESS
Definition: hal_adc.h:72
hal_adc_close
err_t hal_adc_close(handle_t *handle)
Close ADC HAL layer object.
HAL_ADC_RESOLUTION_10_BIT
Definition: hal_adc.h:90
hal_adc_set_vref_input
err_t hal_adc_set_vref_input(handle_t *handle, hal_adc_config_t *config)
Set ADC HAL reference voltage source to desired value.
HAL_ADC_RESOLUTION_8_BIT
Definition: hal_adc.h:89
hal_adc_set_resolution
err_t hal_adc_set_resolution(handle_t *handle, hal_adc_config_t *config)
Set ADC HAL sample resolution.
HAL_ADC_WRONG_PIN
Definition: hal_adc.h:73
hal_adc_t
ADC HAL context structure, consisted of the following fields :
Definition: hal_adc.h:149
HAL_ADC_RESOLUTION_12_BIT
Definition: hal_adc.h:91
err_t
int32_t err_t
Definition: hal_target.h:63
HAL_ADC_RESOLUTION_NOT_SET
Definition: hal_adc.h:87
hal_adc_err_t
hal_adc_err_t
Definition: hal_adc.h:70
HAL_ADC_WRONG_CHANNEL
Definition: hal_adc.h:78