当前位置:首页 > 单片机 > 单片机
[导读]观察DR寄存器bit31位来确认是否转换完成,属于查询方式,如果没有转换完成,程序会停在检测的那条语句处,不能做其他的事情,极大的浪费了处理器的资源,这一节,介绍更为效率的中断方式。给ADINTEN寄存器对应ADINT位

观察DR寄存器bit31位来确认是否转换完成,属于查询方式,如果没有转换完成,程序会停在检测的那条语句处,不能做其他的事情,极大的浪费了处理器的资源,这一节,介绍更为效率的中断方式。

给ADINTEN寄存器对应ADINT位写1,当ADC转换完成后,会引发ADC转换中断。

ADINTEN寄存器:

位符号描述复位值7:0ADINT这个位决定了哪个通道转换完成后产生中断。例如:当bit1=1,当AD1通道转换完成后,产生中断0x008ADGINT如果这个位是1,当全局DR寄存器的DONE位置1,引发中断


注意:当BURST=1,即硬件扫描模式下,如果用中断,只能用bit7:0这个位必须为0

131:9–保留0

在ADC_Init()函数中,加入下面两条语句开启ADC中断。

LPC_ADC->INTEN=(1<

在main.c文件或者adc.c文件中,写入中断服务函数,如下所示:

voidADC_IRQHandler(void){uint16_tadc_value;adc_value=(LPC_ADC->DR[Channel]>>6)&0x3FF;adc_value=(adc_value*Vref)/1024;UART_send_byte(adc_value);UART_send_byte(adc_value>>8);}

假如设置了CAP引脚触发转换,当CAP引脚上出现上升沿或下降沿时,就会触发ADC转换,转换结束后,进入ADC中断服务函数。


本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
换一批
延伸阅读
关闭