Skip to content

Commit f4a92e5

Browse files
authored
[doxygen][rsoc] add adc driver example for doxygen (#9465)
* [doxygen] add adc driver example for doxygen * add data structures
1 parent b4d3006 commit f4a92e5

File tree

1 file changed

+97
-1
lines changed
  • components/drivers/include/drivers

1 file changed

+97
-1
lines changed

components/drivers/include/drivers/adc.h

+97-1
Original file line numberDiff line numberDiff line change
@@ -14,20 +14,75 @@
1414
#define __ADC_H__
1515

1616
#include <rtthread.h>
17+
/**
18+
* @addtogroup Drivers RTTHREAD Driver
19+
* @defgroup ADC ADC
20+
*
21+
* @brief ADC driver api
22+
*
23+
* <b>Example</b>
24+
* @code {.c}
25+
* #define ADC_DEV_NAME "adc1"
26+
* #define ADC_DEV_CHANNEL 5
27+
* #define REFER_VOLTAGE 330
28+
* #define CONVERT_BITS (1 << 12)
29+
*
30+
* static int adc_vol_sample(int argc, char *argv[])
31+
* {
32+
* rt_adc_device_t adc_dev;
33+
* rt_uint32_t value, vol;
34+
*
35+
* rt_err_t ret = RT_EOK;
36+
*
37+
* adc_dev = (rt_adc_device_t)rt_device_find(ADC_DEV_NAME);
38+
* if (adc_dev == RT_NULL)
39+
* {
40+
* rt_kprintf("adc sample run failed! can't find %s device!\n", ADC_DEV_NAME);
41+
* return RT_ERROR;
42+
* }
43+
*
44+
* ret = rt_adc_enable(adc_dev, ADC_DEV_CHANNEL);
45+
*
46+
* value = rt_adc_read(adc_dev, ADC_DEV_CHANNEL);
47+
* rt_kprintf("the value is :%d \n", value);
48+
*
49+
* vol = value * REFER_VOLTAGE / CONVERT_BITS;
50+
* rt_kprintf("the voltage is :%d.%02d \n", vol / 100, vol % 100);
51+
*
52+
* ret = rt_adc_disable(adc_dev, ADC_DEV_CHANNEL);
53+
*
54+
* return ret;
55+
* }
56+
* MSH_CMD_EXPORT(adc_vol_sample, adc voltage convert sample);
57+
*
58+
* @endcode
59+
*
60+
* @ingroup Drivers
61+
*/
62+
1763

64+
/*!
65+
* @addtogroup ADC
66+
* @{
67+
*/
1868
#define RT_ADC_INTERN_CH_TEMPER (-1)
1969
#define RT_ADC_INTERN_CH_VREF (-2)
2070
#define RT_ADC_INTERN_CH_VBAT (-3)
2171

2272
struct rt_adc_device;
73+
/**
74+
* @brief Configure the adc device
75+
*/
2376
struct rt_adc_ops
2477
{
2578
rt_err_t (*enabled)(struct rt_adc_device *device, rt_int8_t channel, rt_bool_t enabled);
2679
rt_err_t (*convert)(struct rt_adc_device *device, rt_int8_t channel, rt_uint32_t *value);
2780
rt_uint8_t (*get_resolution)(struct rt_adc_device *device);
2881
rt_int16_t (*get_vref) (struct rt_adc_device *device);
2982
};
30-
83+
/**
84+
* @brief adc device
85+
*/
3186
struct rt_adc_device
3287
{
3388
struct rt_device parent;
@@ -43,10 +98,51 @@ typedef enum
4398
RT_ADC_CMD_GET_VREF = RT_DEVICE_CTRL_BASE(ADC) + 4, /* get reference voltage */
4499
} rt_adc_cmd_t;
45100

101+
/**
102+
* @brief register the adc device
103+
* @param adc adc device
104+
* @param name device name
105+
* @param ops device ops
106+
* @param user_data device private data
107+
* @return rt_err_t error code
108+
* @ingroup ADC
109+
*/
46110
rt_err_t rt_hw_adc_register(rt_adc_device_t adc,const char *name, const struct rt_adc_ops *ops, const void *user_data);
111+
112+
/**
113+
* @brief read the adc value
114+
* @param dev adc device
115+
* @param channel adc channel
116+
* @return rt_uint32_t adc value
117+
* @ingroup ADC
118+
*/
47119
rt_uint32_t rt_adc_read(rt_adc_device_t dev, rt_int8_t channel);
120+
121+
/**
122+
* @brief enable the adc channel
123+
* @param dev adc device
124+
* @param channel adc channel
125+
* @return rt_err_t error code
126+
* @ingroup ADC
127+
*/
48128
rt_err_t rt_adc_enable(rt_adc_device_t dev, rt_int8_t channel);
129+
130+
/**
131+
* @brief disable the adc channel
132+
* @param dev adc device
133+
* @param channel adc channel
134+
* @return rt_err_t error code
135+
* @ingroup ADC
136+
*/
49137
rt_err_t rt_adc_disable(rt_adc_device_t dev, rt_int8_t channel);
138+
139+
/**
140+
* @brief get the adc resolution
141+
* @param dev adc device
142+
* @param channel adc channel
143+
* @return rt_int16_t adc resolution
144+
* @ingroup ADC
145+
*/
50146
rt_int16_t rt_adc_voltage(rt_adc_device_t dev, rt_int8_t channel);
51147

52148
#endif /* __ADC_H__ */

0 commit comments

Comments
 (0)