PIC单片机的WDT问题求解
发布网友
发布时间:2022-04-20 06:07
我来回答
共3个回答
热心网友
时间:2022-07-12 08:37
数据手册只说了是清除分频器,没说清除CONFIG2H啊。
你好好看看数据手册中的那个关于WDT的框图。(不知道你用的那个芯片的数据手册,我看的是PIC18F4680,是在第353页的图24-1)。
那图里很形象说明了WDT的后分频器是根据CONFIG2H中的WDTPS3~WDTPS0这四个位的数值来配置的。打个比方说说,后分频器是一个用来计数的池子,这个池子的容量大小由WDTPS3~WDTPS0这四个人来设置。当池子溢出后(计数满了)或者要开闸放水(CLRWDT指令)这时候就把这个池子的水放掉(清零)。
但你的理解是,如果要清零的话,不仅要把水放掉,还会把那四个人干掉……然后做程序的人要重新派四个人过去……这个……第一个步骤是对的,第二步骤明显是错误或者没有逻辑的。
热心网友
时间:2022-07-12 08:38
bit 0 SWDTEN : Software Controlled Watchdog Timer Enable bit
1 = Watchdog Timer is on
0 = Watchdog Timer is off
Note 1 : This bit has no effect if the Configuration bit, WDTEN, is enabled.
热心网友
时间:2022-07-12 08:38
你的理解错了!它说的是清分频器,指的是计时过程的所有的计数值,包括已经记下的分频数值也清了,而不是你设置的那些值。
如假设你设置的分频比是1:8.现在你的延时时间计数已经记了6,还没到8,所以还没有进位,此时清WDT时除了清已经计数的值外,还把把这个中间的计数值6也清了,而不是你设置的那个分频比的值。