初学者,5402

[复制链接]
 楼主| wangcunboy 发表于 2007-1-16 15:18 | 显示全部楼层 |阅读模式
&nbsp;f=20;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ms=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while(1)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{while(ms&lt25);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ms=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;asm(&quot;&nbsp;&nbsp;RSBX&nbsp;&nbsp;XF&nbsp;&quot;);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while(ms&lt25);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ms=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;asm(&quot;&nbsp;&nbsp;SSBX&nbsp;&nbsp;XF&nbsp;&quot;);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />f,ms是两个变量,ms是在定时器中断中没中断一次增加1,XF控制LED闪烁,上面这个程序不行,改为下面这样就可以,真是很奇怪.<br />&nbsp;f=20;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ms=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while(1)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{while(ms&lt500/f);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ms=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;asm(&quot;&nbsp;&nbsp;RSBX&nbsp;&nbsp;XF&nbsp;&quot;);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while(ms&lt500/f);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ms=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;asm(&quot;&nbsp;&nbsp;SSBX&nbsp;&nbsp;XF&nbsp;&quot;);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
phoenixmy 发表于 2007-1-16 20:28 | 显示全部楼层

建议楼主再试验一下

<br />看语法好象没有什么区别诶<br /><br />我刚才在板子上试验了一下<br />两个都可以点亮LED<br /><br />感觉楼主给设置的周期是不是有些短啊(只有25),估计是不是闪烁太快你看不清楚啊,建议你把时间再设置长一些
 楼主| wangcunboy 发表于 2007-1-16 20:33 | 显示全部楼层

我试过很多遍了,加长周期也不行,我也用示波器测过,

你两个都闪烁吗
phoenixmy 发表于 2007-1-16 20:52 | 显示全部楼层

???那可是就奇怪了啊

<br />我都实验过了啊<br /><br />都可以的
phoenixmy 发表于 2007-1-17 14:56 | 显示全部楼层

好像是被优化了......

<br />今天经高人提示,感觉你的问题好象是出在编译器的自动优化上面了<br /><br />建议你在MS变量定义前使用volatile关键字<br /><br />这样就可以防止编译器对你的代码进行优化<br /><br />详细参见http://blog.21ic.com/user1/3691/archives/2007/34087.html<br /><br />已经经过实验验证,的确存在这样的问题,楼主可以再实验一下 <br /> 相关链接:<a href='http://blog.21ic.com/user1/3691/archives/2007/34087.html'>http://blog.21ic.com/user1/3691/archives/2007/34087.html</a>
 楼主| wangcunboy 发表于 2007-1-22 20:25 | 显示全部楼层

谢谢,我再试试

  
nxy825715 发表于 2007-1-23 14:39 | 显示全部楼层

个人见解:

确实是被优化了...
 楼主| wangcunboy 发表于 2007-1-31 12:25 | 显示全部楼层

恩,是这样的,我昨天调试了一下,确实是这样.

大侠的名字好象是凤凰卫视啊!
phoenixmy 发表于 2007-1-31 13:22 | 显示全部楼层

我晕倒~~~~~~~~~~~~那是phoenixtv.........

<br />你那个问题也算是经典问题了<br /><br />我也是新手<br /><br />有空一起讨论
 楼主| wangcunboy 发表于 2007-2-1 09:45 | 显示全部楼层

我喜欢看凤凰卫视

我是自己买了板子学习,摸着石头过河(也打算来年找个DSP方面的工作),连个讨论的人都没有,只有上这论坛来.<br />以后有问题还得请教!<br />
phoenixmy 发表于 2007-2-1 14:21 | 显示全部楼层

一起讨论学起来还是快一些 :)

我的邮箱是<br /><br />liuhang20011@163.com<br /><br />对了,我也搞了个21IC的BLOG<br /><br />phoenixmy.21ic.org<br /><br />有空过来坐坐,呵呵
您需要登录后才可以回帖 登录 | 注册

本版积分规则

14

主题

49

帖子

0

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