|
|
7 maanden geleden | |
|---|---|---|
| .. | ||
| .settings | 8 maanden geleden | |
| board | 8 maanden geleden | |
| figures | 1 jaar geleden | |
| packages | 8 maanden geleden | |
| rzn | 7 maanden geleden | |
| rzn_cfg | 7 maanden geleden | |
| rzn_gen | 7 maanden geleden | |
| script | 8 maanden geleden | |
| src | 1 jaar geleden | |
| .api_xml | 1 jaar geleden | |
| .config | 8 maanden geleden | |
| .cproject | 8 maanden geleden | |
| .gitignore | 1 jaar geleden | |
| .project | 1 jaar geleden | |
| .secure_azone | 1 jaar geleden | |
| .secure_rzone | 8 maanden geleden | |
| .secure_xml | 8 maanden geleden | |
| Kconfig | 8 maanden geleden | |
| README.md | 7 maanden geleden | |
| README_zh.md | 7 maanden geleden | |
| SConscript | 7 maanden geleden | |
| SConstruct | 1 jaar geleden | |
| buildinfo.ipcf | 7 maanden geleden | |
| buildinfo.json | 8 maanden geleden | |
| configuration.xml | 8 maanden geleden | |
| envsetup.sh | 1 jaar geleden | |
| mklinks.bat | 1 jaar geleden | |
| mklinks.sh | 1 jaar geleden | |
| ozone_scons.jdebug | 1 jaar geleden | |
| project.ewd | 7 maanden geleden | |
| project.ewp | 7 maanden geleden | |
| project.ewt | 7 maanden geleden | |
| project.eww | 1 jaar geleden | |
| rtconfig.h | 8 maanden geleden | |
| rtconfig.py | 1 jaar geleden | |
| rzn_cfg.txt | 8 maanden geleden | |
| template.ewd | 7 maanden geleden | |
| template.ewp | 7 maanden geleden | |
| template.eww | 1 jaar geleden | |
English | 中文
This example demonstrates how to use the RT-Thread ADC framework on the EtherKit to collect analog signals via ADC and perform digital signal conversion. The main content includes the following:
As shown in the schematic above, the EtherKit provides an 8-channel analog input interface, which is connected to the MCU's ADC channels 0, 1, 2, and 3 for ADC0 and ADC1. (Note: The voltage range for the Analog Input is 0 to 1.8V.)
r_adc stack, configure the ADC device, and select the channels to be used.hal_data.c.Use the env tool to enable ADC0 peripheral:
The ADC source code is located in /projects/etherkit_driver_adc/src/hal_entry.c. The macros used are defined as follows:
The specific function is to sample the analog voltage from ADC0 channel 0 every 1000ms and perform a conversion. The code is as follows:
static int adc_vol_sample()
{
rt_adc_device_t adc_dev;
rt_uint32_t value, vol;
rt_err_t ret = RT_EOK;
/* Find the device */
adc_dev = (rt_adc_device_t)rt_device_find(ADC_DEV_NAME);
if (adc_dev == RT_NULL)
{
rt_kprintf("adc sample run failed! can't find %s device!\n", ADC_DEV_NAME);
return RT_ERROR;
}
/* Enable the device */
ret = rt_adc_enable(adc_dev, ADC_DEV_CHANNEL);
/* Read the sampled value */
value = rt_adc_read(adc_dev, ADC_DEV_CHANNEL);
rt_kprintf("The value is :%d \n", value);
/* Convert to corresponding voltage */
vol = value * REFER_VOLTAGE / CONVERT_BITS;
rt_kprintf("The voltage is :%d.%02d \n", vol / 100, vol % 100);
/* Disable the channel */
ret = rt_adc_disable(adc_dev, ADC_DEV_CHANNEL);
return ret;
}
In the example, the while loop calls adc_vol_sample every 1000ms.
mklinks.bat to create symbolic links between RT-Thread and the libraries folder. Then, use the Env tool to generate the IAR project. Finally, double-click project.eww to open the IAR project and compile it.After compilation, connect the development board’s JLink interface to the PC and download the firmware to the development board.
The effect when using ADC0 channel 0 to sample a 1.8V voltage is shown below:
The ADC voltage input tolerance for the R9A07G084M08GBG chip is 1.8V.