在LPC824开发板的基本功能测试中,除了GPIO及串行通讯测试之外就就要A/D采集功能的测试。在具备A/D采集的条件下,对外部模拟信号的采集与处理就不在话下了。 为了测试LPC824开发板的A/D采集功能,可以使用项目文件ametal_am824_core_1.02\projects_keil5\examples_adc\demo_lpc82x_std_adc_poll\demo_lpc82x_std_adc_poll.uvprojx,其程序内容如下: - #include "ametal.h"
- #include "am_vdebug.h"
- #include "am_led.h"
- #include "am_delay.h"
- #include "am_lpc82x_inst_init.h"
- extern void demo_lpc82x_std_adc_poll_entry(am_adc_handle_t adc_handle);
- int am_main (void)
- {
- am_adc_handle_t adc0_handle = am_lpc82x_adc0_inst_init();
- AM_DBG_INFO("Start up successful!\r\n");
- demo_lpc82x_std_adc_poll_entry(adc0_handle);
- while (1)
- {
- am_mdelay(100);
- }
- }
复制代码 所调用的A/D采集函数为: - void demo_lpc82x_std_adc_poll_entry (am_adc_handle_t adc_handle)
- {
- uint8_t i;
- am_adc_rate_set (adc_handle, ADC_CHAN, 100000); //100000=0.1M
- while (1) {
- am_adc_read_mv(adc_handle, ADC_CHAN, g_adc_val_buf, ADC_BUF_LEN);
- // #define ADC_BUF_LEN 200
- // 限定每行的输出字符数200
- for (i = 0; i < ADC_BUF_LEN; i++) {
- AM_DBG_INFO("%dmV ", g_adc_val_buf[i]);
- }
- // 换行
- AM_DBG_INFO("\r\n");
- }
- }
复制代码 该程序的功能是: 以0.1MHz的采样率对ADC通道0的模拟信号进行采集,为了便于信号的调节,可在PIO0_7引脚接入一个电位器来模拟信号幅值的变化。 A/D采集效果
通过对程序的分析可以发现,它在输出采样值时并没用采样一行一个结果的方式,而是以限定每行字符数的方式,将多个结果均匀地分配到一行来显示。 以此为基础,在配接显示器件的情况下就可实现一个简单的数字电压表。
|