[应用相关] 中断一次也进不去

[复制链接]
1757|34
朝生 发表于 2023-2-10 15:10 | 显示全部楼层
中断函数有问题感觉。
Pretext 发表于 2023-2-10 15:10 | 显示全部楼层
你用CubeMX配置完后,正常在it.c里面应该有一个ADC中断函数。
SantaBunny 发表于 2023-2-11 10:19 | 显示全部楼层
在用DAC之前,你要开启内部参考源
公羊子丹 发表于 2025-4-6 07:36 | 显示全部楼层
感觉你进不了中断可能是 ADC12IE 的设置不对,0x08 是开了 ADC12IE3,但是你用的是 ADC12MEM0 和 MEM1 啊,得开 ADC12IE0 和 ADC12IE1 才能触发中断。
周半梅 发表于 2025-4-6 07:37 | 显示全部楼层
LPM4会关闭时钟源,ADC好像在LPM3或更低模式才工作得了,你试试改成 LPM0 或 LPM3 进入看看还能不能进中断。
帛灿灿 发表于 2025-4-6 07:39 | 显示全部楼层
ADC12CTL0 |= ADC12SC; 是一次触发起两个通道的转换吗?建议你确认下 ADC12CONSEQ_1 是不是按顺序转换多个通道然后只触发一个中断。
童雨竹 发表于 2025-4-6 07:40 | 显示全部楼层
你用的是 ADC12CONSEQ_1,这是序列模式,要用 ADC12IE1 开启 MEM1 的中断才行,MEM3 是不会触发的,除非你采样到第四个通道了。
万图 发表于 2025-4-6 07:41 | 显示全部楼层
有可能你中断根本没触发,是不是没清标志位?可以打断点看看 ADC12IFG 有没有置位,确认是没触发还是触发了但没跳进去。
Wordsworth 发表于 2025-4-6 07:42 | 显示全部楼层
中断没进可能是中断优先级没开,或者GIE没生效,断点单步看看 __bis_SR_register(LPM4_bits+GIE); 执行后是不是GIE位真的设置上了。
Bblythe 发表于 2025-4-6 07:44 | 显示全部楼层
建议把 ADC12_VECTOR 中断函数最前面打个断点,再触发一次采样看看能不能断进来,有时候不是中断没触发,而是配置的优先级/向量号有问题。
Pulitzer 发表于 2025-4-6 07:45 | 显示全部楼层
ADC_PORT_SEL |= 0xff; 这个有点大,确定你只想用P6.6和P6.7吧?可能影响别的通道,最好只设置对应位。
Uriah 发表于 2025-4-6 07:46 | 显示全部楼层
你可以试试看用单通道单次模式(ADC12CONSEQ_0),只采一个 A6 先排查一下中断是不是基本能触发,别一下子开两个通道。
Clyde011 发表于 2025-4-6 07:48 | 显示全部楼层
我建议你在 ADC12ISR 中加上默认情况打个标志或者LED点亮,确认有没有进中断但没进到你想的case,很多时候是 ADC12IV 不等于你预期的那项。
星闪动力 发表于 2025-4-7 17:16 | 显示全部楼层
先开内置参考电压,再看看中断能不能进去。
未来AI 发表于 2025-4-8 07:11 | 显示全部楼层
A0口的模拟输入稳定可靠,可能是寄存器没有配置正确。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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