打印
[Kinetis]

KL25Z ADC中断的使用

[复制链接]
2281|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
我的应用有三路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通道,只是最后引脚位置不同而已。

使用特权

评论回复
地板
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?

使用特权

评论回复
5
andy_yao|  楼主 | 2015-2-4 16:01 | 只看该作者
怎样区分每个ADC通道的中断?

使用特权

评论回复
6
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 ;高手有没有办法?

使用特权

评论回复
7
FSL_TICS_Jeremy| | 2015-3-4 16:56 | 只看该作者
andy_yao 发表于 2015-2-4 16:14
为何在程序中这样定义中断:
NVIC_EnableIRQ(ADC0_IRQn); 设置断点在这个中断后,程序跑不到断点,我的keil ...

这只是中断向量表定位方式的不同,本质上两者是一致的。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

17

主题

98

帖子

0

粉丝