外部中断的一个现象?

2019-07-20 20:44发布

当外部中断服务函数里只写一句翻转io的代码的时候,实验现象是有时能翻转有时不能翻转,但当我加一句延时1us后,就每次都能翻转了,为什么会这样?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
27条回答
特朗姆斯
2019-07-21 12:21
无法接受在中断服务程序里加延时的做法,即使只有1us,中断服务程序就应当是尽可能简洁简单而高效。如果要延时的话那就设一个标志(flag)在主程序里对该标志进行判断后做I/O翻转的处理。

另外,问一句,楼主你在外部中断服务程序里只写了一句翻转I/O,那么你翻转I/O之前有没有判断外部中断的状态寄存器?判断完状态寄存器之后有没有清除对应的中断标志位?

一周热门 更多>