scottly 发表于 2014-11-26 14:38

28335复位问题

问题:
1. 28335如何进行软件复位?软件复位只能使用看门狗吗?如何指定何时复位?
2. 软件复位和硬件重新上电重启有差别吧,28335软件复位后,能不能恢复到相当于重新上电的状态?

zhangmangui 发表于 2014-11-26 23:59

软件应该只能复位一些外设吧    这个MCU都要复位   比较困难
看来只能是看门狗了    配置好看门狗   在需要复位时使能看门狗
然后不喂狗   等待复位
看门狗可以起到相当于重新上电的状态

scottly 发表于 2014-11-27 08:56

zhangmangui 发表于 2014-11-26 23:59 static/image/common/back.gif
软件应该只能复位一些外设吧    这个MCU都要复位   比较困难
看来只能是看门狗了    配置好看门狗   在需要 ...

恩 谢谢 一般的看门狗有两种模式,复位模式和中断模式,你说的使能看门狗,使能的是复位模式吧,达到一定的时间不喂狗,就会复位,是这个意思吧?

丙寅电子 发表于 2014-11-27 10:01

围观,

zhangmangui 发表于 2014-11-27 13:07

scottly 发表于 2014-11-27 08:56 static/image/common/back.gif
恩 谢谢 一般的看门狗有两种模式,复位模式和中断模式,你说的使能看门狗,使能的是复位模式吧,达到一定 ...

恩 其实他就是一个定时器 让他开始计时

jing43 发表于 2014-11-29 23:39

实测,当看门狗工作在复位模式下时,以下代码:
                                EALLOW;
                                SysCtrlRegs.WDCR = 0; // 用看门狗强复位,这样才能彻底的复位。
                                EDIS;
能产生强复位,立即复位,和硬件复位一样的效果。

jing43 发表于 2014-11-29 23:42

jing43 发表于 2014-11-29 23:39 static/image/common/back.gif
实测,当看门狗工作在复位模式下时,以下代码:
                                EALLOW;
                                SysCtrlRegs.WDCR = 0; // 用看门狗强复位 ...

如果之前看门狗还没有打开,可以用以下代码打开:
        EALLOW;
        SysCtrlRegs.WDCR = 0xAE; // 使能看门狗
        EDIS;
看门狗打开时默认定时到时复位,想要定时到时中断,需要配置。

scottly 发表于 2014-11-30 10:08

jing43 发表于 2014-11-29 23:42 static/image/common/back.gif
如果之前看门狗还没有打开,可以用以下代码打开:
        EALLOW;
        SysCtrlRegs.WDCR = 0xAE; // 使能看门狗


你好,谢谢你的回复,请问如何定时复位呢?能再贴一段代码么?谢谢

jing43 发表于 2014-11-30 11:19

使能看门狗那一段就是会产生定时复位,时间计算为:
下面 WDPS 为 WDCR 中的 WDPS 值,T 为 CPU 单周期时间,512 是系统时钟进入看门狗先分频 512 再说,256 是看门狗计数溢出的值。
t = T * 512 * (1 << WDPS) * 256。
0xAE @60M: t = 1/60 000 000 * 512 * (1 << 6)*256 = 0.0699050666666667s。

scottly 发表于 2014-12-1 08:41

jing43 发表于 2014-11-30 11:19 static/image/common/back.gif
使能看门狗那一段就是会产生定时复位,时间计算为:
下面 WDPS 为 WDCR 中的 WDPS 值,T 为 CPU 单周期时间 ...

好的 谢谢 我再看看 这种低级问题不应该问的,应该自己研究,呵呵
页: [1]
查看完整版本: 28335复位问题