[Kinetis] KL25Z ADC中断的使用

[复制链接]
 楼主| andy_yao 发表于 2015-2-3 14:47 | 显示全部楼层 |阅读模式
我的应用有三路ADC输入,想用中断来采样,目前如果只输入一路,中断测量成功,但是怎样才能做到用中断(且不用DMA)测量三路信号呢? AD采样模式:单端,16位,4AVG,软件触发。另外在keil 中怎样开启ADC中断和总中断,我目前是用IAR来编写的。
 楼主| andy_yao 发表于 2015-2-3 14:55 | 显示全部楼层
KL25Z128VLK4在手册上说有14个ADC channel,ADC_SE0,ADC_SE1,ADC_SE2,ADC_SE3,ADC_SE4a,ADC_SE5a,ADC_SE6a,ADC_SE7a,ADC_SE8,ADC_SE9,ADC_SE11,ADC_SE12,ADC_SE13,ADC_SE14,ADC_SE15.
但同时在手册上还列出了另外4个ADC channel ,ADC_SE4b,ADC_SE5b,ADC_SE6b,ADC_SE7b,
两个加起来不止14个channel了。
FSL_TICS_Jeremy 发表于 2015-2-4 09:33 | 显示全部楼层
开启ADC中断和总中断操作的目标寄存器都是一样的,所以代码可以直接参考。
而关于ADC的通道其实ADC_SE4b与ADC_SE4a都是对应正4通道,只是最后引脚位置不同而已。
2015-02-04_9-32-23.jpg
 楼主| andy_yao 发表于 2015-2-4 15:49 | 显示全部楼层
FSL_TICS_Jeremy 发表于 2015-2-4 09:33
开启ADC中断和总中断操作的目标寄存器都是一样的,所以代码可以直接参考。
而关于ADC的通道其实ADC_SE4b与A ...

开启ADC中断和总中断操作的目标寄存器都是一样的,所以代码可以直接参考?能不发过来参考一下,头文件中对应keil有一些例程的中断是加了16,有一些又不加,但是对应IAR的所有中断都是加上16?
 楼主| andy_yao 发表于 2015-2-4 16:01 | 显示全部楼层
怎样区分每个ADC通道的中断?
 楼主| andy_yao 发表于 2015-2-4 16:14 | 显示全部楼层
为何在程序中这样定义中断:
NVIC_EnableIRQ(ADC0_IRQn); 设置断点在这个中断后,程序跑不到断点,我的keil版本是5.12,另外在sysinit.c中有这样的定义void enable_abort_button(void)
{#ifndef CMSIS
    enable_irq(30);      
#else
    NVIC_EnableIRQ(PORTA_IRQn);
#endif
} 程序可以正常运行到 NVIC_EnableIRQ(PORTA_IRQn); 另外我在keil C/C++中定义 KEIL FREEDOM CMSIS ;高手有没有办法?
FSL_TICS_Jeremy 发表于 2015-3-4 16:56 | 显示全部楼层
andy_yao 发表于 2015-2-4 16:14
为何在程序中这样定义中断:
NVIC_EnableIRQ(ADC0_IRQn); 设置断点在这个中断后,程序跑不到断点,我的keil ...

这只是中断向量表定位方式的不同,本质上两者是一致的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

17

主题

98

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部