Board logo

标题: 求助:DG128狗复位后怎样保存寄存器中的值,我用的PE [打印本页]

作者: boychb    时间: 2010-1-14 01:41     标题: 求助:DG128狗复位后怎样保存寄存器中的值,我用的PE

各位高手,现在有这样一个要求,系统在累计编码器的脉冲数,万一干扰引起狗复位,怎么样在复位中断中将数据保护起来?由于PE初始化时会清掉RAM,所以程序中将脉冲数存在一个16位寄存器中,比如说PWM模块中的PWMDTY01,然后在复位中断中查出复位原因,如果是狗复位则将PWMDTY01中的值从新赋给变量。现在的问题是复位标志寄存器一直是0,不管是上电复位还是外部复位以及狗复位,烦请高手指点。
作者: 康桥人    时间: 2010-1-15 11:23

PWMDTY01属于硬件寄存器,所以复位的时候,肯定会清零。
不过,你可以将其值保存在ram中,在复位的时候,第一件事就是将值传递给寄存器
作者: boychb    时间: 2010-1-15 13:36

2# 康桥人 [/b
现在就是这么做的,在PE对内存清空前将RAM的数据给了寄存器,在OnRST这个中断里将寄存器的值赋给了另外一个变量,但是还是保存不了。
现在给流程是:复位--寄存器硬件清零--RAM数据存在寄存器里---清内存--PE初始化CPU--OnReset中断中寄存器数据倒RAM--初始化寄存器---主函数中用户代码执行
看起来没啥问题啊。。。烦请指教 呵呵




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0