lpc1114 cap引脚触发adc转换

  • 学习4155次

在单片机上,有两个CAP引脚可以触发ADC转换,这两个引脚分别是CT16B0CAP0和CT32B0CAP0。

这里以CT16B0CAP0为例介绍。

新建一个工程,结构如下图所示:

lpc1114adc

文件用《cortex m0 lpc1114 adc start位控制转换》的即可。

在adc.c文件中,将ADC_Init()函数中对CR寄存器的配置修改如下所示:

  1. LPC_ADC->CR = (1<<Channel)| ?/* bit7:bit0?? 选择通道Channel*/
  2. ????????????????(24<<8)|??? /* bit15:bit8? 把采样时钟频率设置为2MHz 50/(24+1)*/
  3. ????????????????(2<<24)|??? /* CT16B0CAP0触发转换 */
  4. ????????????????(1<<27);?? ?/* 下降沿触发 */

和《cortex m0 lpc1114 adc start位控制转换》不同的是,增加了第3行和第4行的配置。对照《cortex m0 lpc1114 adc start位控制转换》中CR寄存器的定义,bit24~bit26写0x2,即配置为CT16B0CAP0触发转换,bit27写1,定义为CAP引脚上的下降沿触发转换。

在adc.c文件中,将ADC_Read()函数修改如下:

  1. uint32_t ADC_Read(uint8_t Channel)
  2. {
  3. ???uint32_t adc_value=0;
  1. ???while((LPC_ADC->DR[Channel]&0x80000000)==0);
  2. ???adc_value += ((LPC_ADC->DR[Channel]>>6)&0x3FF);
  3. ???adc_value = (adc_value*Vref)/1024;
  1. ???return adc_value;
  2. }

与《cortex m0 lpc1114 adc start位控制转换》中的ADC_Read()函数相比,去掉了START位的启动语句。关于其他语句的详细解释,请看《cortex m0 lpc1114 adc介绍资料详解》

main.c文件不变。

打开串口调试助手,当给予CT16B0CAP0(P0.2)脚一个下降沿,就会给串口调试助手发送一个数据。在Ration LPC1114开发板上,可以把按键的引脚和P0.2脚相连,只要按一下按键,就会给CAP0一个下降沿。

发表评论