|
在做灯控系统,用的08A-sop8芯片.
程序写好了,但发现一开始的时候,灯都会闪几灯,一直对程序进行分析,最终发现是写EEPROM时引起的.
现在写了个实验模式,LED每10MS反转一次.然后我的程序要求在第100MS,300MS,3S的时候向EEPROM写一个字节的数据.
问题来了.写EEPROM写数据的时候,不知道是不是子程序占用时间过长,在以述三个时间的时候,能看到LED闪一下.意思就是,本来LED亮10MS,灭10ms,在第100MS的时候写EEPROM,刚好LED在灭10MS的状态,这时不知道是不是写EEPROM占用时间过长,LED灭的时候超过10ms,就会明显看到LED灭一下.(本来10MS反转一次,看到的LED是半亮状态的,不细心不会看到闪烁,只是半亮状态)
在上述三个时间写EEPROM的时候,LED都会灭一下.
然后一步步分析可能出现问题的语句,最后注释掉"EEDR=data;"这句后,就完全正常了,难道这句占用时间太多???有谁能帮我解决一下这个问题吗?
注:EEPROM子程序是完全照搬LGT手册上的例程,前后加多开关全局中断的指令. |
阿莫论坛20周年了!感谢大家的支持与爱护!!
知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)
|