[ZLG-ARM] 大家帮我看个程序啊,谢谢

[复制链接]
 楼主| uuuren 发表于 2008-9-4 16:25 | 显示全部楼层 |阅读模式
IO, pc, EPC, se, pi
void&nbsp;&nbsp;DelayNS(uint32&nbsp;&nbsp;dly)<br />{&nbsp;&nbsp;uint32&nbsp;&nbsp;i;<br /><br />&nbsp;&nbsp;&nbsp;for(;&nbsp;dly&gt0;&nbsp;dly--)&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(i=0;&nbsp;i&lt3000;&nbsp;i++);<br />}<br />//持续蜂鸣<br />int&nbsp;&nbsp;persist(void)<br />{&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;uint32&nbsp;m;<br />&nbsp;&nbsp;&nbsp;&nbsp;uint32&nbsp;n;<br />&nbsp;&nbsp;&nbsp;&nbsp;uint32&nbsp;k;<br />&nbsp;&nbsp;&nbsp;&nbsp;k=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;n=30;<br />&nbsp;&nbsp;&nbsp;&nbsp;for(m=30;m&gt0;m--)<br />&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;IO0SET&nbsp;=&nbsp;BEEPCON;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;BEEPCON&nbsp;=&nbsp;1<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DelayNS(n);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IO0CLR&nbsp;=&nbsp;BEEPCON;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;BEEPCON&nbsp;=&nbsp;0<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DelayNS(3);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;n--;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(n==0)<br />&nbsp;&nbsp;&nbsp;&nbsp;n++;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while(&nbsp;(IO0PIN&PIN_P014)==0&nbsp;)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;IO0SET&nbsp;=&nbsp;BEEPCON;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;k=k+1;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while(&nbsp;(IO0PIN&PIN_P014)==1&nbsp;)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(k&gt0)&nbsp;IO0SET&nbsp;=&nbsp;BEEPCON;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else&nbsp;break;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if((IO0PIN&PIN_P014)==0)k=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;return(0);<br />}<br />我单步执行看的,运行到最后一个while语句中,判定条件为真,且k=0x00000009时,语句if(k&gt0)&nbsp;IO0SET&nbsp;=&nbsp;BEEPCON;&nbsp;不会执行,直接跳出while了,应该是执行了else。是怎么回事阿,k是大于0的呀。
gavin_he 发表于 2008-9-4 17:15 | 显示全部楼层

程序格式也得整漂亮一点吧!

  
zlg_lly 发表于 2008-9-4 20:11 | 显示全部楼层

RE:uuuren

你好,不防反汇编一下吧,看看汇编代码是怎么回事。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

44

主题

74

帖子

0

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

44

主题

74

帖子

0

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