T2 是4mS一个周期, T2中断服务程序 有没有 测量过 最大运行时间 多少?
hyhmh 发表于 2012-1-10 15:03
平均小于2ms,在读写24C16时超过10ms,但在读写EEPROM时另外加了喂狗指令,而且读写EEPROM仅发生在开机和关机时刻(由用户按开机、关机键开关机),平时没有读写EEPROM动作,但是程序跑飞时,经常会改写eeprom数据。
另外,我用示波器观察到程序跑飞时已经跑出AT89C52的8K空间,我认为基本上除了看门狗已经没法拦截跑飞的程序了。
跑出8K空间的依据是:P0口、P2口上出现了地址、数据脉冲,而我的硬件上,P0口用于数码管的段码,P2口接了8个按键。EA接电源端,所以跑飞的症状是数码管乱闪,由于我的按键消抖时间较长(每隔4ms读一次按键电平,电平重复12次确认按键信号有效),P2口的电平变化基本不会引起按键动作。
|