OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4324|回复: 4

独立看门狗 疑问, 望高手解答!!!!

[复制链接]

22

主题

92

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
446
金钱
446
注册时间
2014-4-7
在线时间
53 小时
发表于 2014-8-20 16:19:05 | 显示全部楼层 |阅读模式
5金钱
我使用的原子的独立看门狗的程序只是做了很小的改动主要验证一些东西,但是程序中的看门狗的溢出的时间为    1s   但是当我延时了  6s  后才开始喂狗  程序依然不产生复位的信号这个内部的40kHZ太不准确了吧,后来我一直加延时知道能够产生复位的信号结果  那个延时时相当的长。 不知道这到底是40KHZ时钟的问题还是其他的位置出现了错误????

 int main(void)
 {        
    delay_init();             //延时函数初始化      
    NVIC_Configuration();      //设置NVIC中断分组2:2位抢占优先级,2位响应优先级
    uart_init(9600);     //串口初始化为9600
     LED_Init();               //初始化与LED连接的硬件接口
    KEY_Init();          //按键初始化    
    delay_ms(500);        //让人看得到灭
    IWDG_Init(4,625);    //与分频数为64,重载值为625,溢出时间为1s       
    LED0=0;                 //点亮LED0
    while(1)
    {
//        if(KEY_Scan(0)==KEY_UP)
//        {
            IWDG_Feed();//如果WK_UP按下,则喂狗
//        }
        delay_ms(6000);
        delay_ms(6000);
        delay_ms(6000);
        delay_ms(6000);
        delay_ms(6000);
        delay_ms(6000);
        delay_ms(6000);
        delay_ms(6000);
        delay_ms(6000);
        delay_ms(6000);
    }    

最佳答案

查看完整内容[请看2#楼]

[mw_shl_code=c,true] //延时nms //注意nms的范围 //SysTick->LOAD为24位寄存器,所以,最大延时为: //nms<=0xffffff*8*1000/SYSCLK //SYSCLK单位为Hz,nms单位为ms //对72M条件下,nms<=1864 void delay_ms(u16 nms) { u32 temp; SysTick->LOAD=(u32)nms*fac_ms;//时间加载(SysTick->LOAD为24bit) SysTick->VAL =0x00; //清空计数器 SysTick->CTRL|=SysTick_CTRL_ENABLE_Msk ...
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

38

主题

527

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1424
金钱
1424
注册时间
2011-11-27
在线时间
122 小时
发表于 2014-8-20 16:19:06 | 显示全部楼层
[mw_shl_code=c,true] //延时nms //注意nms的范围 //SysTick->LOAD为24位寄存器,所以,最大延时为: //nms<=0xffffff*8*1000/SYSCLK //SYSCLK单位为Hz,nms单位为ms //对72M条件下,nms<=1864 void delay_ms(u16 nms) { u32 temp; SysTick->LOAD=(u32)nms*fac_ms;//时间加载(SysTick->LOAD为24bit) SysTick->VAL =0x00; //清空计数器 SysTick->CTRL|=SysTick_CTRL_ENABLE_Msk ; //开始倒数 do { temp=SysTick->CTRL; } while(temp&0x01&&!(temp&(1<<16)));//等待时间到达 SysTick->CTRL&=~SysTick_CTRL_ENABLE_Msk; //关闭计数器 SysTick->VAL =0X00; //清空计数器 } #endif[/mw_shl_code]
[mw_shl_code=c,true]对72M条件下,nms<=1864 [/mw_shl_code]
永远保持一颗学习的心态。
回复

使用道具 举报

22

主题

92

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
446
金钱
446
注册时间
2014-4-7
在线时间
53 小时
 楼主| 发表于 2014-8-21 08:39:07 | 显示全部楼层
回复【2楼】科科1987:
---------------------------------
谢谢的回答,但是  delay_ms(6000); 不就是 6s 钟  吗  ,而看门狗的溢出的时间为    1s    ,应该加一个  delay_ms(6000);就应该能看到产生复位的信号(LED0会闪烁),但是只加一个延时我的板子上是看不到呀????(我的板子是正点原子旗舰的)
回复

使用道具 举报

38

主题

527

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1424
金钱
1424
注册时间
2011-11-27
在线时间
122 小时
发表于 2014-8-21 08:54:16 | 显示全部楼层
回复【3楼】STM32新学习者:
---------------------------------
nms<=1864, delay_ms(6000)不是6s
永远保持一颗学习的心态。
回复

使用道具 举报

22

主题

92

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
446
金钱
446
注册时间
2014-4-7
在线时间
53 小时
 楼主| 发表于 2014-8-21 13:43:25 | 显示全部楼层
回复【4楼】科科1987:
---------------------------------
我知道了,谢谢,就是这个延时函数最大的延时的时间为1864ms  ,明白了  谢谢!!!!!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-2 14:15

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表