|
楼上说的对,指令的执行时间是微秒级的,可以做许多的工作.
请你仔细看我LZ位的掉电中断处理过程的描述.
因为对于电源掉电的处理,需要考虑存在电源确实掉电和电源不稳定产生波动的2种可能性.
因此在我的掉电处理过程中包含有对外部控制的处理部分,在进入掉电中断后,马上处理的是确保安全的动作,如将控制马达的I/O口输出0,以及消耗系统电源比较多(如LED显示)的部件关闭.可是没有将全部的I/O做处理.
这样的话,如果进入掉电中断是由于电源不稳定产生波动产生的,那么电源经过短时间波动后恢复了正常,实际没有掉电.在这种情况下AVR实际还在正常工作,当它检测到电源正常后,恢复外部器件工作,就可以从掉电中断中返回继续原来正常的程序执行了.
如果进入中断就把所有端口设置高阻输入,adc禁止等,那么正常恢复前就需要重新做初始化配置,而且还要恢复到进中断前的状态,这样就比较麻烦,另外代码也长,占用了资源.
所以,我认为不必要将全部的I/O做处理,只处理重要的I/O口.不是仅仅从时间上考虑问题,要综合考虑.固我不是以AVE本身最小的电流10~20mA做标准,而是用了"大约需要50-100mA的电流".这样,尽管储能电容大了些,不仅提高了可靠性,也方便做后面的处理. |
|