边沿触发和电平触发的区别

边沿触发和电平触发的区别
当然不一样了
电平触发是在高或低电平保持的时间内触发,
而边沿触发是由高到低或由低到高这一瞬间触发
追问:
我总觉得都是在电平为某一值是而触发的。那边沿触发到底解决了电平触发哪点没有解决的问题呢?
追答:
边沿触发一般时间短,边沿触发一般时间都是us级的,响应要快的,而电平触发只须是高和低就可以了,没时间要求,比如10s 时间内总是低电平,那么它也是触发的,
比如中断计时或计数,最好用边沿触发,用电平触发误差会很大,电平触发一般用于简单报警,开关一类(时间要求不高的)
分类:
电平触发,就是只有高电平的时候才做指定的事,
边沿触发,就是有高电平向低电平转换,或者翻过来转换,这个转换过程触发一个动作。
上升沿,顾名思义,就是低电平向高电平转换的瞬间,比如
_______
____/ ,这个图中,/部分就是上升沿,

______
\_____ ,这个图中,\部分就是下降沿

电平就是电压,高电平就是高电压,低电平就是低电压
高电平触发就是当电压为高就触发
边沿触发就是当电压由高变低或由低变高时触发
上升沿触发 就是当电压从低变高时触发
下降沿触发 就是当电压从高变低时触发

边沿触发:上升沿和下降沿,这个在学数电时都学过的,简单说就是电平变化那一瞬间。

电平触发:一般是指低电平,就是电平变为低了之后的全部时间里。

如果是下降沿触发,当从高至低电平转变时,触发产生。低电平保持多久都只产生一次。

如果是低电平触发,那么在低电平时间内中断一直有效。如果在电平没有恢复之前就退出中断程序,那么会在退出后又再次进入中断。只要不退出是不会重复触发的。我的做法是在退出前关闭中断,等后面有空时再打开。、

如:外部中断1中断中来检测按键。
void ISR_INT1(void) interrupt 2
{

if(!INT1) //INT1为外部中断1,INT1=P3^3.
{
DelayMs(10);//在此处可以添加动程序,防止按键抖动造成错误
if(!INT1)
while(!INT1);//等待按键释放
{
L1=!L1;
}
}
}来在外部中断中来检测按键。虽有一丢丢效果。
但不建议用外部中断来检测按键。
当你按下S2或S3时已经执行中断服务子程序去了,延时消抖是不可行的,只有采用硬件消抖。在实际应用中INT1和INT0接的应该是稳定数字数字信号,而不是按键产生有干扰的数字信号,有条件的话就用硬件消抖。

外部中断是用来检测要求响应速度高(微秒级)的外设的,而按键的动作时间都大于40毫秒,你可以测试一下。
虽然还是有很多做开发板的把按键做在中断上,但那只是验证是否好用,产品上尽量不要这样做。
按键消抖也不要用延时10ms再检测一次的办法,延时的这10ms实在是浪费控制器的资源,要知道时间对微控制器来说是非常宝贵的。
在做按键检测时,建议设置一个10ms的定时器中断作为时钟节拍,并在中断中设置标志。
程序的主循环中检测时钟节拍标志,检测到标志后清除标志并扫描按键,记录当前按键状态并和上次检测的结果做比较,并记录相同的次数,连续三次检测到同一个按键按下,则确认按键按下。
这样既可以消抖保证按键的准确,又较少的占用了微控制器的时间资源,稍微增加了点程序的空间,在单片机做的人机界面的系统中,应该是最合算的。

时间: 2024-11-23 22:00:08

边沿触发和电平触发的区别的相关文章

关于电平触发和边沿触发的不同

记得以前上大学时,老师讲到下降沿触发时,怎么也分不清下降沿触发与低电平触发有什么区别,乍看,它们似乎是一样的,比如键盘扫描程序扫描键盘是否按下: 某事件设为低电平触发[采用周期时间扫描方式查询触发条件是否成立],初始化时为高电平即事件未触发,当电平突然改变为低电平,之后扫描程序执行到了这里扫描,则发现变为低电平故执行触发: 某事件设为下降沿触发[采用周期时间扫描方式查询触发条件是否成立],初始化时为高电平即事件未触发,当电平突然改变为低电平,之后扫描程序执行到了这里扫描,则发现变为低电平故执行触

epoll 水平触发和边缘触发的区别

EPOLLLT——水平触发EPOLLET——边缘触发 epoll有EPOLLLT和EPOLLET两种触发模式,LT是默认的模式,ET是“高速”模式.LT模式下,只要这个fd还有数据可读,每次 epoll_wait都会返回它的事件,提醒用户程序去操作,而在ET(边缘触发)模式中,它只会提示一次,直到下次再有数据流入之前都不会再提示了,无 论fd中是否还有数据可读.所以在ET模式下,read一个fd的时候一定要把它的buffer读光,也就是说一直读到read的返回值小于请求值,或者 遇到EAGAIN

水平触发和边缘触发的区别

水平触发(level-triggered,也被称为条件触发)LT:  只要满足条件,就触发一个事件(只要有数据没有被获取,内核就不断通知你) 边缘触发(edge-triggered)ET: 每当状态变化时,触发一个事件. "举个读socket的例子,假定经过长时间的沉默后,现在来了100个字节,这时无论边缘触发和条件触发都会产生一个read ready notification通知应用程序可读.应用程序读了50个字节,然后重新调用api等待io事件.这时条件触发的api会因为还有50个字节可读,

软触发和硬触发的区别

转自: 什么是硬件触发和软件触发 硬件触发:数据采集卡被动等待触发信号,接收到信号后才进行数据采集:触发信号可由某个仪器在一定状态下发出.如有的自动测量系统中的高速数据卡就接收position controller发出的触发信号.而有的则依靠矢量网络分析仪接收外部触发信号.之所以能接收触发信号,和仪器的工作模式有关.硬件触发与数据采集卡有关. 软件触发:通过软件主动查询信号或仪器当前状态,符合条件则控制系统采集信号.软触发有着更大的柔性,但系统整体速度和测量精度一般不如硬触发,特别是有着复杂信号

时序电路—之锁存器

verilog中if与case语句必须完整,即if要加上else,case后要加上default语句,以防止锁存器的发生,接下来就来说说其中原因. 一,什么是锁存器?锁存器与触发器的区别.http://www.eefocus.com/liuyuxue/blog/13-11/300280_d7008.html 锁存器与触发器最大的区别在于,锁存器是电平触发,而触发器是边沿触发.锁存器在不锁存数据时,输出随输入变化:但一旦数据锁存时,输入对输出不产生任何影响. 锁存器和触发器区别 http://we

代码的未来pdf

下载地址:网盘下载 作者简介  · · · · · · 松本行弘(Yukihiro Matsumoto) Ruby语言发明者,亦是亚洲首屈一指的编程语言发明者.现兼任网络应用通信研究所(NaCl)研究员.乐天技术研究所研究员.Heroku首席架构师等.昵称"Matz".讨厌东京,喜欢温泉. 译者简介: 周自恒 IT.编程爱好者,技术宅,初中时曾在NOI(国家信息学奥赛)天津赛区获一等奖,大学毕业后曾任IT咨询顾问,精通英语和日语,译著有<30天自制操作系统>.<大数据

高性能网络编程 - epoll机制

select系统调用不仅对描述符的数量有限制,而且在高并发的情况下,哪怕只有一个活跃的套接字,也要轮询全部的fd set,而epoll采用回调的事件通知机制,只需要处理活跃的套接字.比如Nginx服务器采用的就是epoll,下面这个程序(当接收到大于10B的数据时)展示了epoll在边沿触发和电平触发的不同表现,在edge-trigger模式下,需要我们的程序一次将这次的事情处理完成(比如把数据全部读取),因为这个事件下次不会加到内核事件注册表中了,相反level-trigger模式下就跟我们的

测脉冲频率几种方法的比较

用单片机测频率脉冲可以用外中断+定时器.定时器的输入捕获.或编码器模块(例如LPC 的QEI可实现对电机的转速.位置测量和报警) 单片机的外中断对外部脉冲的触发条件有2种: 边沿触发:适合脉冲,比较常用 电平触发:使用时要:进入时关闭中断,退出时再开中断以防止电平持续时间过长,ISR还未处理完中断又发生中断导致的反复中断触发. 外中断+定时器法: 外中断完成对外部脉冲的计数,定时器完成设定测量周期,定时器的中断优先级要比外中断高以实现在测量周期到达后关闭外中断. 缺点:利用单片机的内部资源多(外

关于系统跑进中断的说法

随着对单片机的运用于了解,常常听别人说你得程序要一直跑入中断中,是不是有些奇怪?我一直觉得中断是一个触发事件,一直觉得是中断打断了程序.按理来说两种说法都对,但是在理解的角度上,其实第一种说法更加容易接受.怎么叫容易接受呢?它在逻辑上给出了一种顺序和主次关系,这样当你以后在设计一个程序的时候逻辑就会清晰一些. 首先让我们来了解一下中断的构成: 中断是单片机内的一组寄存器,当我们规定了它的结构和运行规则之后,单片机就会自动产生中断,中断产生后就会向某个寄存器里面溢出一个高电平.此时单片机会"丢弃&