搜索
bottom↓
回复: 11

PIC里当分频器分配给TIMER0之后,WATCHDOG的定时器应怎么分配呢?

[复制链接]

出0入0汤圆

发表于 2010-4-19 09:22:37 | 显示全部楼层 |阅读模式
如题。看门狗和TIMER0的分频器是共用的,分配给看门狗后,TIMER0分频比例是1:1,但是分配给TIMRE0的时候,看门狗的时钟应该是多少呢?

路过的大哥请帮忙回答一下! 多谢!

出0入0汤圆

发表于 2010-4-19 09:59:42 | 显示全部楼层
回复【楼主位】angle11
-----------------------------------------------------------------------

pic的WDT使用的是一个独立的片内RC振荡器.

预分频1:1时,溢出周期对于不同的片子是不一样的,对于同一个片子,不同温度不同电压下也是不一样的,我知道的pic16的WDT溢出周期在9~30ms之间,典型值18ms,这些值都可以在芯片的数据手册上的电气特性那一章节看到的.

出0入0汤圆

 楼主| 发表于 2010-4-19 10:35:04 | 显示全部楼层
【1楼】 xujiayong

谢谢!
如果是这样没有分频的话,WDT周期太短了点吧。。。
有没有什么办法让WDT使用TIMER0的时侯延长一呢?

出0入0汤圆

发表于 2010-4-19 12:31:25 | 显示全部楼层
wdt时间短有什么问题呢?
一般来说对程序影响不大,只要稍稍注意一下就行了
或者你是要用看门狗做什么特殊功能呢?

出0入0汤圆

发表于 2010-4-19 13:32:33 | 显示全部楼层
回复【2楼】angle11
-----------------------------------------------------------------------

如果需要WDT的溢出周期长一些,可以将预分频器分配给WDT,然后设置你想要的预分频比.这样的话TMR0的预分频比就是1:1了

出0入0汤圆

 楼主| 发表于 2010-4-19 14:02:39 | 显示全部楼层
【3楼】 shenme  
看门狗太短的话,开启看门狗后,main程序还没执行完就复位了(在main程序里有延时程序),我是这个意思。

【4楼】 xujiayong
我明白你的意思,使用TIME0后,main程序时间很容易超过看门狗的周期,那怎样喂狗呢?


THS!

出0入0汤圆

发表于 2010-4-19 14:15:16 | 显示全部楼层
回复【5楼】angle11
-----------------------------------------------------------------------

WDT溢出跟TMR0溢出没有关系啊,他们两个使用不同的时钟,你可以看下芯片的数据手册啊

出0入0汤圆

发表于 2010-4-19 15:32:52 | 显示全部楼层
lz是用C的吗?C的delay()是不含清狗指令,所以开看门狗的话,超过18ms就会复位
我认为,就算用C,也可以自己用汇编写个延时程序调用,就不怕看门狗溢出的问题
例如:
void delay_ms(unsigned char millisecond)
{
        i = millisecond;
        #asm
        delay_ms_0:
                        clrwdt
                        movlw        249
                        movwf        _j
        delay_ms_1:
                        nop
                        decfsz        _j,f
                        goto        delay_ms_1
                        decfsz        _i,f
                        goto        delay_ms_0
        #endasm
}

出0入0汤圆

 楼主| 发表于 2010-4-19 17:12:31 | 显示全部楼层
回楼上:
是的,我正学PICC,相信用C比较方便一点。
只是你的函数是个延时函数,程序在这个函数延时了,并没有做其它的工作。似乎起不到的看门狗延迟的作用?

出0入0汤圆

发表于 2010-4-19 17:17:58 | 显示全部楼层
我的函数中间有"clrwdt"命令,就是清看门狗的,每1ms就清看门狗一次

出0入0汤圆

发表于 2010-4-19 17:22:17 | 显示全部楼层
LZ请仔细阅读所用PIC的单片机的数据手册中关于TMR0与WATCHDOG的章节,它们两个是合用一个分频器的,总共只有一个,分配给了一个,另一个就自动不分频了。

出0入0汤圆

 楼主| 发表于 2010-4-19 19:24:47 | 显示全部楼层
我明白了,在一个较长的main函数里,我想应该可以多次清狗。。。。。。

谢谢以上朋友的回复!TKS!
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-9 22:43

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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