fix: 修正API生成逻辑中2024库的url
[LuatOS.git] / luat / include / luat_adc.h
blob2c9aeefdd64e697c1ed63328b3f2a194a35094f4
1 /******************************************************************************
2 * ADC设备操作抽象层
3 * @author wendal
4 * @since 0.1.5
5 *****************************************************************************/
6 #ifndef Luat_ADC_H
7 #define Luat_ADC_H
9 #include "luat_base.h"
10 /**
11 * @defgroup luatos_device_adc ADC接口
12 * @{
14 #define LUAT_ADC_CH_CPU (-1)
15 #define LUAT_ADC_CH_VBAT (-2)
17 typedef enum
19 ADC_SET_GLOBAL_RANGE = 0x80,
20 }ADC_SET_CMD_ENUM;
22 /**
23 * @brief ADC控制命令
25 typedef enum LUAT_ADC_CTRL_CMD
27 LUAT_ADC_SET_GLOBAL_RANGE,/**< 量程 */
28 }LUAT_ADC_CTRL_CMD_E;
30 /// @brief ADC量程
31 typedef enum LUAT_ADC_RANGE
33 LUAT_ADC_AIO_RANGE_1_2,
34 LUAT_ADC_AIO_RANGE_1_4,
35 LUAT_ADC_AIO_RANGE_1_6,
36 LUAT_ADC_AIO_RANGE_1_9,
37 LUAT_ADC_AIO_RANGE_2_4,
38 LUAT_ADC_AIO_RANGE_2_6,
39 LUAT_ADC_AIO_RANGE_2_7,
40 LUAT_ADC_AIO_RANGE_3_2,
41 LUAT_ADC_AIO_RANGE_3_8,
42 LUAT_ADC_AIO_RANGE_4_0,
43 LUAT_ADC_AIO_RANGE_4_8,
44 LUAT_ADC_AIO_RANGE_6_4,
45 LUAT_ADC_AIO_RANGE_9_6,
46 LUAT_ADC_AIO_RANGE_19_2,
47 LUAT_ADC_AIO_RANGE_MAX,
49 LUAT_ADC_VBAT_RANGE_2_0_RATIO,
50 LUAT_ADC_VBAT_RANGE_2_2_RATIO,
51 LUAT_ADC_VBAT_RANGE_2_6_RATIO,
52 LUAT_ADC_VBAT_RANGE_3_2_RATIO,
53 LUAT_ADC_VBAT_RANGE_4_0_RATIO,
54 LUAT_ADC_VBAT_RANGE_5_3_RATIO,
55 LUAT_ADC_VBAT_RANGE_8_0_RATIO,
56 LUAT_ADC_VBAT_RANGE_16_0_RATIO,
57 }LUAT_ADC_RANGE_E;
59 /**
60 * @brief ADC控制参数
62 typedef union luat_adc_ctrl_param
64 LUAT_ADC_RANGE_E range;/**< adc量程*/
65 void *userdata;/**< 预留 */
66 } luat_adc_ctrl_param_t;
68 /**
69 * luat_adc_open
70 * Description: 打开一个adc通道
71 * @param pin[in] adc通道的序号
72 * @param args[in] 保留用,传NULL
73 * @return 0 成功, 其他值为失败
75 int luat_adc_open(int pin, void* args);
77 /**
78 * luat_adc_read
79 * Description: 读取adc通道的值
80 * @param pin[in] adc通道的序号
81 * @param val[out] adc通道的原始值
82 * @param val2[out] adc通道的计算值,与具体通道有关
83 * @return 0 成功, 其他值为失败
85 int luat_adc_read(int pin, int* val, int* val2);
87 /**
88 * luat_adc_close
89 * Description: 关闭adc通道
90 * @param pin[in] adc通道的序号
91 * @return 0 成功, 其他值为失败
93 int luat_adc_close(int pin);
95 /**
96 * luat_adc_global_config
97 * Description: 设置adc全局参数
98 * @param tp[in] 参数类型
99 * @param val[in] 参数值
100 * @return 0 成功, 其他值为失败
102 int luat_adc_global_config(int tp, int val);
105 * luat_adc_ctrl
106 * Description: 设置ADC参数,部分功能会与luat_adc_global_config有相同的想过
107 * @param id[in] adc通道的序号
108 * @param cmd[in] 参数类型
109 * @param param[in] 参数值
110 * @return 0 成功, 其他值为失败
112 int luat_adc_ctrl(int id, LUAT_ADC_CTRL_CMD_E cmd, luat_adc_ctrl_param_t param);
114 * luat_adc_open_and_disable_lowpower
115 * Description: 打开一个adc通道,并且阻止系统进入休眠
116 * @param pin[in] adc通道的序号
117 * @return 0 成功, 其他值为失败
119 int luat_adc_open_and_disable_lowpower(int id);
121 * luat_adc_read_fast
122 * Description: 读取adc通道的值,必须由luat_adc_open_and_disable_lowpower初始化过的通道
123 * @param pin[in] adc通道的序号
124 * @param val[out] adc通道的原始值
125 * @param val2[out] adc通道的计算值,与具体通道有关
126 * @return 0 成功, 其他值为失败
128 int luat_adc_read_fast(int id, int* val, int* val2);
130 * luat_adc_close_and_enable_lowpower
131 * Description: 关闭adc通道,并且允许系统进入休眠
132 * @param pin[in] adc通道的序号
133 * @return 0 成功, 其他值为失败
135 int luat_adc_close_and_enable_lowpower(int id);
136 /** @}*/
137 #endif