qwerty427 发表于 2012-6-27 12:01:30

新手请教一个教材中关于中断的问题

新手,学习马老师教材《AVR........原理与应用实践》第二版第7章中断系统与基本应用时有一个地方不解,在229页讲述到:在系统程序的初始化部分中对外部中断进行设置时,在某一中断源的使能中断允许前,要将该中断标识位清除,但方法却是向GIFR寄存器中该中断标识位写“1”,我以为这里是笔误,翻看219页的例程,在中断源初始化处确实是这样做的。这个地方很疑惑啊,清除标识位为何是写1而不是写0.写1的话不是软件触发了这个中断源吗?请高手指点一下。

millwood0 发表于 2012-6-28 01:32:17

清除标识位为何是写1而不是写0.写1的话不是软件触发了这个中断源吗?

It is to avoid accidental clearing of the interrupt flag.

But read the f@#$king datasheet to be sure.

machao 发表于 2012-6-29 21:15:42

见精华帖“为何AVR使用写1作为清0中断标志位的手段”http://www.amobbs.com/forum.php?mod=viewthread&tid=847087&extra=page%3D1%26filter%3Ddigest%26digest%3D1%26digest%3D1

本人的AVR栏目,不管是学术还是技术,堪称一流(仅指针对8位的AVR),90%网友问的问题,应该都有解释,或进一步深入的指导。
不过对于基础不好的朋友,想走捷径的朋友,基本上没有用。
LZ,你应该在本栏多花的时间,会得到真正的收益。
2楼的朋友算是高手,但不是教师。他的回答85%是有道理的,但85%的人看不懂。

我推荐的帖子是2007年帖上去的,已经5年过去了。现在已经更多芯片采用写“1”清零或者置位的方法,比如STM32中的置位和清零都是写“1”,而写“0”没有任何动作(都是与中断有关的设置,但不同的寄存器),说明这个方法是有其优点的。而这些优点也就是我5年前提到的。

qwerty427 发表于 2012-6-29 21:27:39

非常感谢马老师的指点,这个论坛确实是一个很好的学习技术的地方。以后提问之前会搜索一下以往的帖子。
页: [1]
查看完整版本: 新手请教一个教材中关于中断的问题