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

2020-02-06 10:12发布

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

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

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

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

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


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
3条回答
Firman
1楼-- · 2020-02-06 13:46
PIC16中断没重入,优先级看你怎么排。
若可能,中断尽量短,或置个标记在外面处理。
若是串口接收,一定要读BUffer,否则中断标志清不掉。
Firman
2楼-- · 2020-02-06 15:59
按键最好用动态扫描,保证50ms内读一次就行
bailao99
3楼-- · 2020-02-06 16:55
LS说得明白,中断不存在嵌套,处理代码最好断点。MCC支持PIC16,看看自动生成的代码。

一周热门 更多>