电平触发,就是只有高电平(或者低电平)的时候才做指定的处理;边沿触发,就是有高电平向低电平转换,或者从低电平向高电平转换,这个转换过程触发一个动作。比如:
_______
__/ ,这个图中,0到1变换,/部分就是上升沿,
______
/_____ ,这个图中,1到0变换,/部分就是下降沿。双边沿触发即上升沿和下降沿都触发。
和电平触发的差别:
(1)电压的要求。不管是高电平触发还是低电平触发,对电压是有要求的,比如说高到一定程度或者低到一定程度才可以。但是对于边沿触发,要求的仅仅是跳变的动作。
(2)触发动作的次数。边沿触发只会产生动作一次;如果是电平触发,如果电平不改变,产生的触发动作应该是一直会存在的。也就是时间轴上的差别,前者是瞬态,后者则是常态。基于这个区别:如果用电平触发在一段时间内会一直响应中断,比如发数据开始会拉低,直到发完后才会拉高,这个低电平触发会不断执行,但其实只想它发数据时触发一次,将其改成低的边沿触发即可。
=====================================================================================
ACCDET内部有两个比较器,会根据传入的电压判断并产生中断。ACCDET的输入电压即耳机 MIC PIN 的电压,内部比较器的输出分别对应A/B两个寄存器。ACCDET内部两个比较器的Vref分别是1.77V和0.4V(硬件决定的,不能修改),所以,对应的电压有3个范围:
1.77V-1.9V:未插入耳机的状态(AB=B11)
0.4V-1.77V:插入4段式(有Mic)耳机时的状态(AB = B01)
0-0.4V:插入3段式耳机时的状态,或者4段式按键按下时的状态(AB = B00)
耳机的状态会保存到ACCDET的寄存器中,当电压在任意2个范围间切换时,状态发生变化,ACCDET产生中断,中断处理中读取状态寄存器的值,并根据状态的变化做相应的处理。
参考原文:http://blog.csdn.net/tanxs001/article/details/8279185