doubao_chat/apps/common/example/peripheral/adc/adc_test.c

51 lines
1.1 KiB
C

#include "generic/typedef.h"
#include "asm/clock.h"
#include "asm/adc_api.h"
#include "system/timer.h"
#include "asm/efuse.h"
#include "asm/p33.h"
#include "asm/power_interface.h"
#include "device/gpio.h"
#include "system/includes.h"
#include "app_config.h"
#include "demo_config.h"
#ifdef USE_ADC_TEST_DEMO
void c_main(void)
{
/*测量AD通道*/
void adc_init(void);
adc_init();
u32 adc_get_value(u32 ch);
u32 adc_get_voltage(u32 ch);
u32 adc_io = IO_PORTA_07;
gpio_set_die(adc_io, 0); //将io设为模拟功能
//浮空输入
gpio_set_direction(adc_io, 1); //方向设为输入
gpio_set_pull_up(adc_io, 0); //关上拉10K
gpio_set_pull_down(adc_io, 0); //关下拉10K
adc_add_sample_ch(AD_CH_PA07);//添加通道
os_time_dly(100);
u16 adc_val = 0;
u16 io_vol = 0;
adc_val = adc_get_value(AD_CH_PA07);
while (1) {
delay(10000000);
adc_val = adc_get_value(AD_CH_PA07);
io_vol = adc_get_voltage(AD_CH_PA07);
printf("adc_val = %d >>> %d mv\n", adc_val, io_vol);
}
}
late_initcall(c_main);
#endif