你好,
我想在PXP-Reporter演示中实现一个AD-Conversion。因此,我在peripher_init()中实现了以下代码:
hw_gpio_set_pin_function(HW_GPIO_PORT_1, HW_GPIO_PIN_3, HW_GPIO_MODE_INPUT, HW_GPIO_FUNC_ADC);/ / ADC-Pin
Static gpadc_config CFG = {
.clock = HW_GPADC_CLOCK_INTERNAL,
.input_mode = HW_GPADC_INPUT_MODE_SINGLE_ENDED,
.input = HW_GPADC_INPUT_SE_P13,
.input_attenuator = true,
.oversampling = 1,
};
hw_gpadc_init (cfg);
hw_gpadc_enable ();
hw_gpadc_start ();
现在,在pxp_reporter_task中,我像这样每秒钟检查一次这个值:
unsigned int batvolad = 0;
BattVoltAD = hw_gpadc_get_value ();
hw_gpadc_start ();
不幸的是,结果很糟糕。不管我把引脚1_3连接到地或V33,值在163到768之间跳跃。我是不是漏掉了什么?
奇怪的是,当我调试代码时,它总是挂起在sys_power_mgr.c -> pm_system_init() ->
提前谢谢,
菲利普
关键词:
设备:
当你正在使用PXP报告器演示,然后我假设ADC适配器在使用,即以下定义在custom_config_qspi.h:
#定义dg_configGPADC_ADAPTER 1
如果是这种情况,那么我建议使用适配器与ADC进行接口,您可以通过查看文件pxp_reporter_task.c中的read_battery_level函数来了解这是如何实现的。看看没有定义dg_configUSE_SOC时所包含的函数的版本。