为什么外部中断会频繁进入中断,但中断信号正常

我用stm32外接了一个imu模组,imu每产生一个数据就会通过int管脚给32一个外部中断信号(200hz),但测试发现stm32会不断地进入中断函数,一秒钟进入上万次的那种,后来才发现原来是电平不匹配导致的,stm32电压3.3V,imu模组1.8V,中断输出电压1.8V。

我设置的stm32接收中断的io是推挽输出,没有上拉,imu中断信号为推挽输出,低电平有效,从而导致中断电平只能到1.8V,刚好处在临界点,使stm32一直触发中断。

解决办法:我把stm32接收io改为开漏模式,并设置为上拉模式,imu的中断输出io改为开漏模式,并且为低电平触发有效,此时stm32的中断便正常了,上拉决定了高电平电压为3.3V。

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
服务器故障处理方法探讨 作者:深圳市环球数码科技有限公司 陈武亭 从2002年上海国内第一套数字放映设备投入商业使用以来,国内已经有超过35000套数字放映设备在影院使用。十几年来业内同仁写了很多数字放映设备使用维护方面的文章,却很少有讨论服务器故障处理方法的,本文将以GDC服务器为例,抛砖引玉,与广大业内同仁共同探讨数字电影服务器故障处理方法。 声画不流畅、放映中途停止是影片放映中出现比较多的故障现象,放映机及还音系统因素导致的故障不在本文讨论之列,本文仅探讨服务器因素导致的此类故障及其检查方法,下面我们先了解一下数字电影服务器的工作原理和流程。 数字电影服务器的放映管理系统(SMS)在安全管理器的监管下将存储在存储系统中的加密内容(DCP)提取到媒体处理系统,进行解密、解码等处理,产生无压缩的重建图像、声音和字幕,并输出至数字放映机和声频处理器而实现电影的放映。 服务器故障处理方法全文共12页,当前为第1页。影片放映时,数字电影服务器是在数据的提供、传输和处理的整个过程中依次读取、传送和处理一帧帧图像和音频数据的。在此过程中,服务器的硬盘和阵列的性能、数据传输的通道、媒体模块和CPU的温度以及所存储的内容数据的完整性,都有可能导致放映不流畅或中途停止。 服务器故障处理方法全文共12页,当前为第1页。 就以处理数据量最大的视频来说,服务器是依次从存储系统中读取图像数据,并将数据传送给媒体模块进行处理。在这个过程中如果某一帧图像数据出现错误,服务器花费更多的时间尝试纠错,当超过一定时间时,服务器将放弃此帧数据,进行后续帧的数据读取和处理。一部普通2D影片有十几万帧的图像数据,只要不是连续的多帧数据出现问题,我们从影片放映的效果上是感觉不到问题的,只有连续的帧在数据处理时出现问题时,才看到放映不流畅的现象;如果问题严重时,则出现放映中途停止或死机。 首先我们从节目源开始讨论,DCP打包前出现的问题不在本文讨论范围内,因此通常需要注意的是服务器内所存储内容数据的完整性。此类问题一般为DCP载入服务器过程中产生,现象为服务器只在放映某部影片时出现异常,放映其他影片正常,且出现问题时均在同一时间点,那极大可能是存储系统中的DCP数据有问题,此时只需对DCP进行完整性验证即可确认。 服务器故障处理方法全文共12页,当前为第2页。如果可以排除内容数据完整性问题,且故障出现随机,则应考虑是否因为服务器的RAID降级或硬盘性能不佳所导致的故障。造成RAID降级的因素有很多,数字电影服务器均采用RAID5技术保证存储系统的容错性与可靠性,具有数据安全、读写速度快、空间利用率高等优点;但不足之处是如果1个磁盘出现故障以后,整个系统的性能将大大降低,在修复完成前出现放映不流畅或中途停止的几率大大增加。因此当数字电影服务器的RAID存储系统出现故障时应尽快恢复,避免因存储系统的性能降低而出现放映故障。 服务器故障处理方法全文共12页,当前为第2页。 服务器出现RAID降级等问题时,开机都有信息警示,只是现实中有相当一部分放映员对此视若无睹,直到放映出现异常了,才去查看处理。及早地处理,不仅可以避免放映事故,还可降低硬盘硬件损坏更换的几率。图一为GDC服务器开机时报告的RAID警示信息,见到此警示需要及时进行查看和修复服务器阵列。我们也可以通过菜单查看服务器的RAID状态,比如GDC服务器可以直接在控制面板中查看,例如图二中显示的RAID状态为降级(Degrade)。 服务器故障处理方法全文共12页,当前为第3页。 图一 服务器故障处理方法全文共12页,当前为第3页。 图二 接下来我们再讨论硬盘性能不佳或损坏的问题。 硬盘在环境温度为5 -60 的设计使用寿命为5年,实际上其使用寿命一般低于5年。而且随着开机时间的增加(与每天使用硬盘的时间有关)、硬盘内部温度的升高(与硬盘外部的热负荷以及硬盘自身产生的热量有关),硬盘的年故障率有所提高。有研究表明当硬盘外壳的温度由30oC(接近室温)上升至70oC时,年故障率上升至约3.4 倍(由0.21%上升至0.71%)。 服务器故障处理方法全文共12页,当前为第4页。除此之外,异常地中断磁盘的读写、物理撞击和剧烈振动等因素,也都可能导致硬盘性能降低或损坏,严重的硬盘错误甚至可能导致服务器无法开启。因此,严格地遵循数字放映设备操作使用规范操作使用设备是确保设备正常运行的重要条件。 服务器故障处理方法全文共12页,当前为第4页。 数字电影服务器都提供硬盘读写性能检测的功能,例如GDC服务器,可以进入控制面板(Admin panel)——存储系统管理(Storage System Management)——存储效率(Storage performance)(见图三和图四)进行硬盘和阵列的读写性能测试,从而
基于单片机的交通灯控制系统设计 1 设计任务与要求 本次课程设计的时间是2009年6月,需要完成的任务是用单片机实现交通灯的基本功 能,该系统除了可以实现基本交通灯功能外,也能实现倒计时 紧急特殊模式等功能。 详细功能为:在白天正常东西方向和南北方向通车,通车时间均为45秒。正常通车情 况下,可以对通车的时间进行倒计时计数,并通过显示器显示出来。如果遇到特殊情况 ,在处理特殊事件时,可使整个十字路口禁止通车。强制东西通行,适用某些需要只进 行东西通车的情况。强制南北通行,适用某些需要只进行南北通车的情况。在夜间车流 量较少的情况下,正常东西方向和南北方向通车,通车时间均为10秒,相对与白天通行 模式,车辆等待时间减少,提高了通行效率。 2 系统设计 此次设计通过ATMEL公司的单片机AT89C51对整个交通灯电路进行控制。根据上面的功能 要求,本次设计需要完成正常模式 计时功能 紧急特殊模式 夜间模式等四个功能。 在正常模式下,交通灯每45秒改变一次通行方向,使得南北和东西交替通行。而LE D显示系统则显示到下一次改变所剩的时间,利于司机调整车辆状况。每到同行方向转换 时,绿灯闪烁,变为黄灯。提醒司机注意通行方向的改变,避免不必要的危险。 本交通灯的设计运用了单片机的外部中断,系统的紧急和夜间模式的切换采用中断 系统完成。这样在任何通行情况下都可进入以上两种模式。在设计中,设置外部中断0为 夜间模式触发按钮,由电平触发完成,设置为低优先级,设置外部中断1为紧急模式触发 按钮,由电平触发完成,设置为高优先级。此时无论紧急状况(如车祸等)发生在何时 都可以直接进入紧急模式以便于交通管理人员处理问题。同时,通过在紧急模式下软件 检测p3.7和p3.6是否不为1来触发东西及南北强制通行模式,以弥补外部中断的不足,实 现更多的功能。 此次设计运用了软件延时程序,这样不仅调整延时长短十分灵活,而且不占用内部 定时/计数器的资源。设计中通过对指令运行的次数进行循环来实现软件延时。当晶振频 率为12MHz时有以下时间周期: 震荡周期:1/12微秒; 状态周期:1/6微秒; 机器周期:1微秒; 指令周期:1~4微秒;(根据指令的不同而不同) 软件延时的优点是较为灵活,调整更为容易,且不受延时时间限制。但软件延时长时 间占用系统资源,使得CPU工作效率不高,在中断频繁的系统中其定时精度也受到中断的 影响。但本系统要求延时时间较长,且没有频繁申请的中断系统,所以选择软件延时配 合外部申请中断模式切换较为合理。 2.1硬件系统设计 根据上面的功能要求,硬件系统主要模块有单片机模块 显示模块 按键模块,其硬件总 电路图如附录二所示。 2.1.1 单片机模块   AT89C52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口 ,3个16位可编程定时计数器,2个全双工串行通信口,2个读写口线,AT89C52可以按照常 规方法进行编程,也可以在线编程。 本设计中AT89C52使用12MHz晶振。 XTAL1(19脚)和XTAL2(18脚):外接晶体引脚,XTAL1和XTAL2分别接外部晶振一端 ;RST:即为RESET,该引脚为单片机的上电复位或掉电保护端。在此设计中接正常模式 按扭;P3.7:使用第二功能,接强制南北通行按扭;P3.6:使用第二功能,接强制东西 通行按扭;P3.3:使用第二功能INT1,接紧急工作模式按扭;P3.2:使用第二功能INT0 ,接夜间工作模式按扭;P1.0~P1.7:输出BCD码,用来控制LED显示器的显示控制;P2. 7、P2.6、P2.5:输出高低电平,用来控制南北交通信号灯;P2.1、P2.2、P2.3:输出高 低电平,用来控制东西交通信号灯;第40脚为电源端VCC,接+5V电源,第20引脚为接地 端VSS。 单片机与其他模块的连接如下图1所示: 图1 单片机与其它模块的连接 2.1.2 显示模块 传统的共阳极或共阴极的数码管其显示输入需要为段码,这样就使得电路相对复杂和 繁琐。对于相同的功能在成本相差不大的情况下,此处运用了带BCD译码电路的LED显示 器。这样既可使线路简化,又可使可靠性提高 本设计中使用的自带BCD译码电路的LED显示器,其主要特点是采用四线BCD码输入, 可显示0-F十六进制数。使用时直接输入BCD码 即可显示相应的数字,使得电路大大简化。设计时,把P1.0~P1.7当 做BCD码输出端口,连接到LED显示器上,这样可把BCD码直接转换成可显示的数字,显示 模块的连接如图2所示: 图2 显示模块 图中的总线接至单片机的P1.0~P1.7端口。 2.1.3 按键模块 在此系统中,按键模块是实现各项功能的关键,按键通过电阻与单片机相连接,可以对 单片机进行控制,低电平信号对相应
### 回答1: 外部中断是由硬件触发的,当特定的事件发生时,处理器暂停当前程序的执行并跳转到中断服务程序中去执行。因此,外部中断的执行时间是无法控制的,它完全取决于外部事件的发生频率和处理器中断响应的速度。 如果你想让外部中断像定时器一样持续执行,可以考虑通过定时器中断来触发外部中断的处理,也就是定时器中断到达时,立即执行外部中断的处理程序。这样,就可以实现外部中断和定时器一样周期性地执行。 具体实现方法可以在中断服务程序中设置一个计数器,在每次中断服务程序执行时,计数器加1。当计数器达到一定的阈值时,执行外部中断的处理程序。这样,就可以实现外部中断和定时器一样周期性地执行了。 ### 回答2: 外部中断的执行是由外部事件触发的,不像定时器一样按照一定的时间间隔一直执行。要让外部中断和定时器一样一直执行,可以采用以下方法: 1.使用计时器:在外部中断触发时,启动一个计时器,并设置一个较小的时间间隔。当计时器计时到指定时间时,即使没有外部事件触发,也可以模拟一个外部中断,使其一直执行。 2.编写一个循环控制程序:在外部中断触发后,进入一个无限循环,不断执行指定的代码。可以在循环体中加入延时函数,以控制执行的时间间隔。这样就可以模拟定时器的连续执行效果。 3.使用中断嵌套:在外部中断触发时,通过设置优先级,使其中断嵌套地执行。通过在外部中断中再次触发外部中断,可以让外部中断一直执行下去。 需要注意的是,在让外部中断连续执行的过程中,要考虑到系统的稳定性和可靠性。必须确保外部中断执行的代码不引起系统异常或死锁等问题。另外,如果外部中断需要处理的事件非常频繁,就可能导致系统资源的过度占用。因此,需要合理地设计和优化外部中断的执行机制。 ### 回答3: 外部中断是通过外部事件来触发的,它通常和微处理器的中断系统紧密相关。中断是一种突发事件,可以打断正在执行的程序,并在处理完中断事件后恢复原来的程序执行状态。 与定时器中断不同,外部中断是通过外部事件触发的,如按键输入、传感器信号等。外部中断的触发并不是周期性的,它依赖于外部事件的发生。所以,无法像定时器中断一样一直执行。 然而,可以通过一些方法使得外部中断在发生后能够连续执行。这些方法包括: 1. 使用边沿触发模式:设置外部中断为边沿触发模式,例如上升沿或下降沿触发。这样当外部事件发生时,中断被触发,并且可以立即执行中断服务程序。 2. 使用多级中断优先级:如果系统中存在多个外部中断源,可以设置不同的中断优先级。这样当多个外部中断同时触发时,可以按照优先级依次执行相应的中断服务程序。 3. 使用中断嵌套:如果外部中断可以在中断服务程序中再触发其他的外部中断,可以使用中断嵌套的方式来实现连续执行。当外部中断被触发时,先执行当前中断服务程序,然后检查其他外部中断是否被触发。如果有,则执行相应的中断服务程序,依次嵌套执行。 总之,外部中断的执行是依赖于外部事件的发生和中断系统的处理机制的。虽然无法像定时器中断一样连续执行,但通过合理的设置和设计,可以实现外部中断的连续执行。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值