导航

  • 下一个
  • 以前的|
  • 使用SDK6外围驱动程序

9.DA14531通用ADC(手动模式)

请注意

必须已经创建了修改后的版本empty_peripheral_template示例项目,如最初的项目章之前!

9.1。使用GPADC最初的项目章节以手动方式使用SDK6提供的GPADC外设驱动程序。

9.1.1。配置ADC输入
#定义ADC_INPUT_PORT GPIO_PORT_0#定义ADC_INPUT_PIN GPIO_PIN_6

接下来,通过将以下内容添加到GPIO_reservations函数,可以在user_periph_setup.c文件:

RESERVE_GPIO(ADC_INPUT,ADC_INPUT_PORT,ADC_INPUT_PIN,PID_ADC);

最后,将GPIO配置为ADC输入,方法是将以下内容添加到set_pad_functions函数,可以在user_periph_setup.c文件:

GPIO_ConfigurePin(ADC_INPUT_PORT,ADC_INPUT_PIN,输入,PID_ADC,假);

9.1.2。添加GPADC驱动程序
# include“adc.h”# include“adc_531.h”

9.2。手动方式测量(单端)
静态uint16_tgpadc_read(无效){/*初始化ADC */adc_config_tadc_cfg={.input_mode=ADC_INPUT_MODE_SINGLE_ENDED,.输入=ADC_INPUT_SE_P0_6,.smpl_time_mult=2,.连续=假,.interval_mult=0,.input_attenuator=ADC_INPUT_ATTN_4X,.切=假,.过采样=0,};adc_init(&adc_cfg);/*执行ADC的偏移校准*/adc_offset_calibrate(ADC_INPUT_MODE_SINGLE_ENDED);adc_start();uint16_t结果=adc_correct_sample(adc_get_sample());adc_disable();返回(结果);}

可以定期调用上述函数,并通过串口调试输出结果。要做到这一点,请将以下原型和变量声明添加到user_empty_peripheral_template.c文件,就在user_on_init功能:

静态无效timer_cb(无效);静态uint16_tgpadc_read(无效);静态uint16_tgpadc_sample_to_mv(uint16_t样本);静态timer_hndtimer_id使用__attribute__((部分(“retention_mem_area0”),zero_init));

要启动计时器,请将以下代码添加到user_on_set_dev_config_complete函数包含在user_empty_peripheral_template.c:

/* Start timer - period的单位为10ms,即200 = 2000ms */timer_id=app_easy_timer(200,timer_cb);

现在添加以下功能,它将ADC转换的结果转换为毫伏值,以结束user_empty_peripheral_template.c文件:

静态uint16_tgpadc_sample_to_mv(uint16_t样本){/* ADC采样分辨率取决于过采样率*/uint32_tadc_res=10+((6<adc_get_oversampling())?6:adc_get_oversampling());/*参考电压是900mv,但规模基于输入注意*/uint32_tref_mv=900*(GetBits16(GP_ADC_CTRL2_REG,GP_ADC_ATTN)+1);返回(uint16_t) ((((uint32_t)样本)*ref_mv)>>adc_res);}

最后,实现将在计时器到期时执行的回调。为此,将以下函数添加到user_empty_peripheral_template.c文件:

静态无效timer_cb(无效){/*执行单个ADC转换*/uint16_t结果=gpadc_read();arch_printf("r \ n \adc结果:% dmv”,gpadc_sample_to_mv(结果));/*重启定时器*/timer_id=app_easy_timer(200,timer_cb);}

9.2.1。测试 _images / da14531_pro_adc_1.svg"src=

图15ADC测试跳线位置 _images / adc_se_man.png"src=

图16单ADC测量的串行调试输出

标志"></a></p>
     <h3><a href=表的内容

  • 1.介绍
  • 2.准备开发工具包
  • 3.最初的项目
  • 4.DA14531实时时钟(RTC)
  • 5.DA14531 SPI闪光
  • 6.DA14531温度传感器
  • 7.DA14531 OTP存储器
  • 8.DA14531 Hibernate模式
  • 9.DA14531通用ADC(手动模式)
  • 10.修订历史
  • 11.状态的定义
  • 12.免责声明
  • 13.RoHS符合性

快速搜索

导航

  • 使用SDK6外围驱动程序
©版权所有2021,Dialog Syabo国际娱乐emiconductor。