[ZLG-ARM] 2210内部看门狗问题

[复制链接]
 楼主| jhycl 发表于 2007-5-14 09:42 | 显示全部楼层 |阅读模式
晶振11.0592&nbsp;<br /><br />看门狗设置:<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;WDMOD&nbsp;=&nbsp;0x00;<br />&nbsp;&nbsp;&nbsp;&nbsp;WDTC&nbsp;&nbsp;=&nbsp;0xf00000;//6s&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;WDMOD&nbsp;=&nbsp;0x03;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;WDT_RESET();<br /><br /><br /><br />void&nbsp;WDT_RESET()<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;uint32&nbsp;i;<br />&nbsp;&nbsp;&nbsp;&nbsp;i&nbsp;=&nbsp;VICIntEnable;<br />&nbsp;&nbsp;&nbsp;&nbsp;VICIntEnClr&nbsp;=&nbsp;0xfffffff;<br />&nbsp;&nbsp;&nbsp;&nbsp;WDFEED&nbsp;=&nbsp;0xAA;<br />&nbsp;&nbsp;&nbsp;&nbsp;WDFEED&nbsp;=&nbsp;0x55;<br />&nbsp;&nbsp;&nbsp;&nbsp;VICIntEnable&nbsp;=&nbsp;i;&nbsp;&nbsp;&nbsp;&nbsp;<br />}<br /><br /><br />void&nbsp;&nbsp;DelayMS(uint32&nbsp;&nbsp;dly)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;uint32&nbsp;i;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;(;dly&nbsp;&gt&nbsp;0;dly--)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;WDT_RESET();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;(i&nbsp;=&nbsp;0;i&nbsp;&lt&nbsp;800;i++);<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />}<br /><br /><br />在主循环和延时程序中调用&nbsp;&nbsp;WDT_RESET()<br /><br />为什么不到6s程序就复位了?请指点
 楼主| jhycl 发表于 2007-5-14 16:14 | 显示全部楼层

这种方式开关中断是否正确?

  
zlgARM 发表于 2007-5-14 21:05 | 显示全部楼层

jhycl

您的程序看上去不太规范。<br />您可以去我们公司网站看看看门狗的使用方法,有疑问再谈。(针对的CPU不一样,但使用方法是一样的) <br /> 相关链接:<a href='http://www.zlgmcu.com/infocomm/newupdate.asp?sorttype=search'>http://www.zlgmcu.com/infocomm/newupdate.asp?sorttype=search</a>
 楼主| jhycl 发表于 2007-5-15 11:18 | 显示全部楼层

时不时开关中断有问题

网站上看了看门狗使用方法,我的使用方法应该没问题,我怀疑是开关中断有些问题,这种开关中断是否可行??
zlgARM 发表于 2007-5-15 12:53 | 显示全部楼层

jhycl

可以用操作CPSR的方法来开关中断,调用IRQENABLE和IRQDISABLE。
 楼主| jhycl 发表于 2007-5-15 15:28 | 显示全部楼层

是否是这样?(转自hotpower)

void&nbsp;__swi(0)&nbsp;Enable_IRQ(void);//开放向量中断总开关<br />void&nbsp;__SWI_0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(void)&nbsp;{<br />int&nbsp;tmp;<br />&nbsp;&nbsp;__asm<br />&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;MRS&nbsp;tmp,&nbsp;SPSR<br />&nbsp;&nbsp;&nbsp;&nbsp;BIC&nbsp;tmp,&nbsp;tmp,&nbsp;#0x80<br />&nbsp;&nbsp;&nbsp;&nbsp;MSR&nbsp;SPSR_c,&nbsp;tmp<br />&nbsp;&nbsp;}<br />}<br /><br />void&nbsp;__swi(1)&nbsp;Disable_IRQ(void);//关闭向量中断总开关<br />void&nbsp;__SWI_1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(void)&nbsp;{<br />int&nbsp;tmp;<br />&nbsp;&nbsp;__asm<br />&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;MRS&nbsp;tmp,&nbsp;SPSR<br />&nbsp;&nbsp;&nbsp;&nbsp;ORR&nbsp;tmp,&nbsp;tmp,&nbsp;#0x80<br />&nbsp;&nbsp;&nbsp;&nbsp;MSR&nbsp;SPSR_c,&nbsp;tmp<br />&nbsp;&nbsp;}<br />}<br /><br />void&nbsp;__swi(2)&nbsp;Enable_FIQ(void);//开放快速中断总开关<br />void&nbsp;__SWI_2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(void)&nbsp;{<br />int&nbsp;tmp;<br />&nbsp;&nbsp;__asm<br />&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;MRS&nbsp;tmp,&nbsp;SPSR<br />&nbsp;&nbsp;&nbsp;&nbsp;BIC&nbsp;tmp,&nbsp;tmp,&nbsp;#0x40<br />&nbsp;&nbsp;&nbsp;&nbsp;MSR&nbsp;SPSR_c,&nbsp;tmp<br />&nbsp;&nbsp;}<br />}<br /><br />void&nbsp;__swi(3)&nbsp;Disable_FIQ(void);//关闭快速中断总开关<br />void&nbsp;__SWI_3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(void)&nbsp;{<br />int&nbsp;tmp;<br />&nbsp;&nbsp;__asm<br />&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;MRS&nbsp;tmp,&nbsp;SPSR<br />&nbsp;&nbsp;&nbsp;&nbsp;ORR&nbsp;tmp,&nbsp;tmp,&nbsp;#0x40<br />&nbsp;&nbsp;&nbsp;&nbsp;MSR&nbsp;SPSR_c,&nbsp;tmp<br />&nbsp;&nbsp;}<br />}<br />
zlgARM 发表于 2007-5-15 18:42 | 显示全部楼层

RE

可以试一下。<br />都是操作CPSR,殊途同归。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

30

主题

124

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部