打印
[boot]

28335复位问题

[复制链接]
5366|18
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
scottly|  楼主 | 2014-11-26 14:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
zhangmangui| | 2014-11-26 23:59 | 只看该作者
软件应该只能复位一些外设吧    这个MCU都要复位   比较困难
看来只能是看门狗了    配置好看门狗   在需要复位时使能看门狗  
然后不喂狗   等待复位  
看门狗可以起到相当于重新上电的状态

使用特权

评论回复
板凳
scottly|  楼主 | 2014-11-27 08:56 | 只看该作者
zhangmangui 发表于 2014-11-26 23:59
软件应该只能复位一些外设吧    这个MCU都要复位   比较困难
看来只能是看门狗了    配置好看门狗   在需要 ...

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

使用特权

评论回复
地板
丙寅电子| | 2014-11-27 10:01 | 只看该作者
围观,

使用特权

评论回复
5
zhangmangui| | 2014-11-27 13:07 | 只看该作者
scottly 发表于 2014-11-27 08:56
恩 谢谢 一般的看门狗有两种模式,复位模式和中断模式,你说的使能看门狗,使能的是复位模式吧,达到一定 ...

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

使用特权

评论回复
6
jing43| | 2014-11-29 23:39 | 只看该作者
实测,当看门狗工作在复位模式下时,以下代码:
                                EALLOW;
                                SysCtrlRegs.WDCR = 0; // 用看门狗强复位,这样才能彻底的复位。
                                EDIS;
能产生强复位,立即复位,和硬件复位一样的效果。

使用特权

评论回复
7
jing43| | 2014-11-29 23:42 | 只看该作者
jing43 发表于 2014-11-29 23:39
实测,当看门狗工作在复位模式下时,以下代码:
                                EALLOW;
                                SysCtrlRegs.WDCR = 0; // 用看门狗强复位 ...

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

使用特权

评论回复
8
scottly|  楼主 | 2014-11-30 10:08 | 只看该作者
jing43 发表于 2014-11-29 23:42
如果之前看门狗还没有打开,可以用以下代码打开:
        EALLOW;
        SysCtrlRegs.WDCR = 0xAE; // 使能看门狗

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

使用特权

评论回复
9
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。

使用特权

评论回复
10
scottly|  楼主 | 2014-12-1 08:41 | 只看该作者
jing43 发表于 2014-11-30 11:19
使能看门狗那一段就是会产生定时复位,时间计算为:
下面 WDPS 为 WDCR 中的 WDPS 值,T 为 CPU 单周期时间 ...

好的 谢谢 我再看看 这种低级问题不应该问的,应该自己研究,呵呵

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

20

主题

179

帖子

1

粉丝