习学发开 发表于 2015-8-5 22:09:15

请问PIC中端档次的单片机相应重复中断是嵌套还是队列?

情况是这样的,用PIC16进行按键中断,工作总是不正常,
虽然已经有了消抖延迟。

目前判断应当是因为抖动,导致PIC16在进入中断服务函数
之后又侦测到了中断,导致重复进入中断。

我的问题是:
1、这是否可能?还是PIC16自己有在进入中断之后,屏蔽中断的
功能,我的判断是错的?

2、如果我判断正确,也就是说,确实出现了重复进入中断的情况,那么
PIC16应对这一情况是队列还是嵌套?换言之是后来的中断会放在当前中断
之后还是立刻响应新的中断,响应完了在退回去处理之前的中断?
我觉得应当是队列,因为PIC16没有中断优先级,所以如果我不写代码的话,应当无法实现嵌套。

3、为了避免这种重复的情况,是刚一进中断服务函数就关掉中断,然后做该做的事好,还是先
做该做的事,做完了快退出中断服务函数时再关掉中断?大部分人会说显然是前者,可我两
种都试过了,竟然没有差别,不知道为什么。


Firman 发表于 2015-8-6 00:52:11

PIC16中断没重入,优先级看你怎么排。
若可能,中断尽量短,或置个标记在外面处理。
若是串口接收,一定要读BUffer,否则中断标志清不掉。

Firman 发表于 2015-8-6 00:54:24

按键最好用动态扫描,保证50ms内读一次就行

bailao99 发表于 2015-8-6 06:50:49

LS说得明白,中断不存在嵌套,处理代码最好断点。MCC支持PIC16,看看自动生成的代码。
页: [1]
查看完整版本: 请问PIC中端档次的单片机相应重复中断是嵌套还是队列?