你的位置:首页 > 软件开发 > 操作系统 > [nRF51822] 9、基础实验代码解析大全 实验12

[nRF51822] 9、基础实验代码解析大全 实验12

发布时间:2016-08-09 16:00:17
一、本实验ADC 配置分辨率:10 位。输入通道:5,即使用输入通道AIN5 检测电位器的电压。ADC 基准电压:1.2V。 二、NRF51822 ADC 管脚分布  NRF51822 的ADC 共有8 个输入通道,对应的管脚分布入下图: 三、NRF51822 ADC 原 ...

[nRF51822] 9、基础实验代码解析大全  实验12

 

 

一、本实验ADC 配置

  • 分辨率:10 位。
  • 输入通道:5,即使用输入通道AIN5 检测电位器的电压。
  • ADC 基准电压:1.2V。

 

二、NRF51822 ADC 管脚分布

  NRF51822 的ADC 共有8 个输入通道,对应的管脚分布入下图:

[nRF51822] 9、基础实验代码解析大全  实验12

 

三、NRF51822 ADC 原理

  NRF51822 的ADC 比较简单,如下图所示。

[nRF51822] 9、基础实验代码解析大全  实验12

 

3.1、ADC 通道及预分压系数

  NRF51822 的ADC 共有8 个输入通道,在使用ADC 时,要设定ADC 的输入通道。本实验中,因为连接电位器的管脚是P0.04,所以,选择输入通道AIN5。

 

3.2、基准电压

  基准电压有4 种选择,分别是:

  • 1) 内部1.2V。
  • 2) CONFIG. EXTREFSEL 中设定的外部基准。
  • 3) 1/2 VDD,仅适用于VDD 工作在1.7 V - 2.6 V 电压范围内。
  • 4) 1/3 VDD,仅适用于VDD 工作在2.5 V - 3.6 V 电压范围内。

 

3.3、分辨率

  NRF51822 的ADC 可以作8、9、10 位转换,本实验中,选择最高分辨率:10 位。需要注意的是:NRF51822 的ADC 自身仅支持单次转换,每次转换时都需要触发STARTtask。当然,我们可以借助NRF51822 强大的PPI 功能,通过定时器时间来触发ADC 的STARTtask,从而进行连续转换。

 

四、代码解析:

main函数:

 1 int main(void) 2 { 3   nrf_gpio_cfg_output(LED_1);//配置P0.21~P0.24为输出驱动LED指示灯D1~D4 4   nrf_gpio_pin_set(LED_1);  //LED初始状态为熄灭 5  6   adc_config(); 7   uart_config(); 8   nrf_adc_start();//每次调用这个函数就会触发ADC一次采样,当采样完毕后会触发ADC_IRQHander,下面ADC_IRQHander内部获取采样值并保存在adc_sample中,同时最后又调用start函数,进行下一次采样 9 10   while (true)11   {12     nrf_delay_ms(200);13     printf("V%d", (int)adc_sample);14     nrf_gpio_pin_toggle(LED_1);15 16     __SEV(); //设置事件17     __WFE(); //进入睡眠,等待事件唤醒18     __WFE();19   }20 }

原标题:[nRF51822] 9、基础实验代码解析大全 实验12

关键词:

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

可能感兴趣文章

我的浏览记录