企业 个人 用户名 密码   忘记密码?
站内 站外
风格设定:
论坛 博客 会展
论坛 博客 会展
 
数据接收时检测时间是否溢出的方法
作者:    时间:2008-08-27    来源:edn 
 
      

大家经常使用到用MCU来接收外部发送的波形,如接收方波、计算波形频率、红外接收等,如果数据出现长期的高电平或低电平,我们将作如何处理?现总结几种个人常用的方法,很可能此举是班门弄斧,各位见笑了。

  1)利用看门狗,在合适的程序处喂狗,一旦数据长期高或低则系统复位;此举简单易用,但很多产品要求当出现无数据时必须给出提示,也可能系统复位时要求显示一个“欢迎XX”之类的提示符,那么此时用WDT来做似乎就不是那么的好了。

  2)建立一个子函数来检测数据是否溢出,此举相对来说比较麻烦,因为接收一段数据其数据位可能是N位,也就是说我们得在这N个地方分别调用这个子函数来检测数据是否发生了时间溢出,不太实用。

  其一可用一个“循环超时”来做:

  其二可在定时中断里定义一个time_counter值,每次中断其值加1,当加到一定值时置TIME_OVER_FLAG标志为1,在主接收程序中检测TIME_OVER_FLAG是否为1,另外接收程序中一检测到有效数据时必须清time_counter的值;

  3)利用定时中断,溢出将出错处理函数段的pc压入堆栈,覆盖原有堆栈,定时中断函数一检测到时间溢出时,则将溢出将出错处理函数段的pc覆盖原有堆栈中的pc值.以下为本人在应用在Sonix上的一例:

  同样,此程序必须在主程序中一检测到有效数据则清TIME_COUNTER的值,此方法简单实用,经本人测试暂没发现问题,但可能其适用范围有限。因为进入中断时不知压了几层堆栈,也不知主程序跑到哪了?我用此法的场合是:主程序接收数据+中断数码管显示+蜂鸣器报警。

 

标签:  看门狗  数据接收  检测数据  溢出


  发表评论

昵称: 验证码:
内容:
 
相关新闻
 · 基于TMS320VC5410的看门狗实
 · 解决工控系统高可靠性的有效技术
 · 基于CD4060的硬件看门狗技术
 · 多任务系统看门狗的实现
 · MAX791在看门狗电路中的应用
 · 基于X25045的新型看门狗电路
 · ST ST7540动力线调制解调方案
 · Maxim 机顶盒(STB)解决方案
最新资讯
 · 示波器探头学习笔记
 · 示波器探头学习笔记
 · 数据接收时检测时间是否溢出的方法
 · 示波器技术不断进步 国内厂商向中高端渐
 · 改进电路设计规程提高可测试性
 · 电测先锋一路歌
 · 自动量程万用表设计方案
 · 个人计算机和电视技术对示波器设计的影响
 
  站内 站外
  Copyright(C)2008 Electronic Design & Application World All rights reserved.  《电子设计应用》杂志社 版权所有
联系电话:(86)10-66421136 66421836 66423836   传真:(86)10-66423936   京ICP备05012822号