[技术问答] M451系列,ADC转换完成可以触发什么中断?

[复制链接]
1529|8
 楼主| libinskk 发表于 2019-1-22 11:01 | 显示全部楼层 |阅读模式
M451系列,ADC转换完成可以触发什么中断?多通道转换如何识别是哪个通道触发了完成中断?
yiyigirl2014 发表于 2019-1-22 14:57 | 显示全部楼层
库函数提供了两个跟转换进程相关的中断:转换开始中断和转换结束中断
yiyigirl2014 发表于 2019-1-22 15:14 | 显示全部楼层
void ADC00_IRQHandler(void)
{
    g_u32AdcIntFlag = 1;
    EADC_CLR_INT_FLAG(EADC, 0x1);      /* Clear the A/D ADINT0 interrupt flag */
}

在中断里判断是哪个
yiyigirl2014 发表于 2019-1-22 15:15 | 显示全部楼层
            /* Enable the sample module 7 interrupt */
            EADC_ENABLE_INT(EADC, 0x1);//Enable sample module A/D ADINT0 interrupt.
            EADC_ENABLE_SAMPLE_MODULE_INT(EADC, 0, (0x1 << 7));//Enable sample module 7 interrupt.
            NVIC_EnableIRQ(ADC00_IRQn);

比如有个例子中使能ADC中断,使能采样模块中断。。。
 楼主| libinskk 发表于 2019-1-22 15:50 | 显示全部楼层
ADINT0 interrupt,我可以允许8个ADC都用它吗?还是有一些必须用ADINT1?
 楼主| libinskk 发表于 2019-1-22 15:51 | 显示全部楼层
ADC00_IRQHandler是采样结果中断吧?开始中断是哪一个?
jiekou001 发表于 2019-1-22 17:25 | 显示全部楼层
libinskk 发表于 2019-1-22 15:51
ADC00_IRQHandler是采样结果中断吧?开始中断是哪一个?

  * @Details The A/D converter generates ADIFn (EADC_STATUS2[3:0], n=0~3) at the start of conversion.
  */
#define EADC_ENABLE_INT_POSITION(eadc, u32ModuleNum) ((eadc)->SCTL[(u32ModuleNum)] |= EADC_SCTL_INTPOS_Msk)
是不是这个?
mintspring 发表于 2019-1-22 23:38 | 显示全部楼层
看你选的ADC通道属于哪个。手册上应该有说明。
jasontu 发表于 2019-1-23 08:30 | 显示全部楼层
eadc只有一個sar adc去作取樣,如果你有開多通道,可以去查看adc vaild的bit,表示當前資料是已轉換完成的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

38

主题

77

帖子

1

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