新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > Watchdog在8XC552系列单片机系统中的应用

Watchdog在8XC552系列单片机系统中的应用

作者:时间:2012-02-22来源:网络收藏

(1)LCD出现闪屏,无法翻屏显示现象

笔者在用仿真器运行编程时,LCD能够翻屏并不断显示采集来的三相用电参数,但离开仿真器处于脱机运行状态时,LCD只能显示第一屏数据。经查仿真器的引脚接高电平,而脱机时脚悬空,从而引起了脚的状态不固定,并不断产生内部复位信号使复位而出现了上述现象。后来把脚接低电平,仍然出现上述现象。而把脚接高电平后(即禁用功能),则LCD显示正常。因此,引脚应严格禁止悬空以避免出现不稳定的状态,同时在未载入程序之前,其引脚也不能接低电平。

(2)LCD无显示

RST端的电容应确保连接正确,否则在高电平时将无法加到复位端而使CPU不能运行程序,从而出现LCD无显示的现象。

(3)LCD显示数据杂

乱无章、数据死锁

把脚接低电平,可能会出现LCD显示的数据杂乱无章、数据死锁现象。其原因是源程序中未载入程序,因此应保证在源程序中加入Watchdog程序,以消除数据的死锁或显示杂乱无章等问题。

4软件设计

4.1软件设计

编写监视定时器运行软件时,程序员首先应当确定能够在错误状态下支持的时间,也就是设定溢出周期的依据。例如能维持16ms,则把T3的初值设定为 10,这样,在16MHz晶振的情况下,溢出周期为15.36ms。此时程序员就可对其软件进行划分,以确定把重写T3值的指令插在什么地方,才能使相邻两次重写操作间隔不超过监视定时器的溢出周期,以保证正常运作时T3不溢出。因此,程序员应当了解所有软件模块的执行时间,同时也要考虑到出现条件跳转、子程序及内外中断等因素所带来的影响。对于那些很难估算其执行时间的程序段落,应按最坏情况估算。为防止误写,监视定时器值的重写可分两步进行。首先将 PCON.4(监视定时器装入允许位WLE)置1,以允许对T3进行写入;第二步向T3写入新值。由图2可知,对T3的写信号同时也会加到WLE的清0 端,于是每当T3被写入新值时,WLE位便自动复位。因此,当该值为00H时,溢出间隔最大;而FFH值则对应最小溢出周期。若采用12MHz晶振,这两值则分别为524ms和2ms。最大和最小溢出周期的计算公式分别为:

35.jpg

由于在空闲方式下,监视定时器照常运行。因此,该方式与掉电方式是矛盾的,因为前者需要时钟,后者冻结时钟。故当=0而开启T3工作时,将无法进入掉电方式,此时向PCON.1写l的操作无效,因而它将保持为0。在软件开发调试的早期阶段,可将引脚接高电平以关闭监视定时器,而在后期改接低电平以完成调试过程。

4.2定时间隔和访问时间的设定

数据采集及处理是程序中的关键部分,也是决定仪器精度的关键所在。本仪器采用电压、电流、频率、相位为主要采集参数,且这些参数是连续变化的,因此采样时间不宜设置得过长,否则会影响仪器的精度。笔者将电流与电压的采样时间定为5ms,频率与相位的采集时间为20ms,这样,Watchdog的定时间隔设置较佳,具体如图3所示。图3中,Watchdog在WDT1时间内完成对采集频率数据的监控,而在WDT2、WDT3、WDT4内分别负责对电压、电流、相位数据采集的监控。在设计程序时,一般取1.1Ts<Tw<2Ts,其中Ts为采样周期,Tw为Watchdog的定时时间,Ts分别为T1、 T2、T3、T4的大小,Tw分别为WDT1、WDT2、WDT3、WDT4的大小。Tw设置太小会增加访问频率,影响程序执行效率;而设置太大则会干扰程序的正常运行,且需等待很长时间才可以恢复运行,而采集或控制对象可能已在这一步偏离过大。因此,CPU访问时间原则上小于Tw就可以了,为防止时间估计不准,设计时应小些为好,这样可以防止异常而处于每经过Tw时间启动一次的死循环中。




评论


相关推荐

技术专区

关闭