打印

Keil果然如神一般的编译器!

[复制链接]
楼主: 291355171
手机看帖
扫描二维码
随时随地手机跟帖
21
291355171|  楼主 | 2012-6-29 12:00 | 只看该作者 回帖奖励 |倒序浏览
基础啊基础,哪本书如此误导楼主?
建议LZ用KEIL的DEBUG,观察汇编的结果,也许可以明白人家的答复。
vrgood 发表于 2012-6-29 11:46


俺对汇编那是一个小白中的小白。。。。犹如天书!:lol

使用特权

评论回复
22
mohanwei| | 2012-6-29 12:24 | 只看该作者
江山人才辈出……

执行完你的main()后,程序存储器后面全是FF……于是PC一直不停加1……一直跑到程序存储器尾部,然后又回到程序存储器开头……然后又开始执行你的main()……

使用特权

评论回复
23
hnlxy712| | 2012-6-29 12:27 | 只看该作者
提示: 该帖被管理员或版主屏蔽
24
hnlxy712| | 2012-6-29 12:28 | 只看该作者
提示: 该帖被管理员或版主屏蔽
25
hnlxy712| | 2012-6-29 12:28 | 只看该作者
提示: 该帖被管理员或版主屏蔽
26
hnlxy712| | 2012-6-29 12:28 | 只看该作者
提示: 该帖被管理员或版主屏蔽
27
hnlxy712| | 2012-6-29 12:28 | 只看该作者
提示: 该帖被管理员或版主屏蔽
28
hnlxy712| | 2012-6-29 12:29 | 只看该作者
提示: 该帖被管理员或版主屏蔽
29
hnlxy712| | 2012-6-29 12:29 | 只看该作者
KEIL的DEBUGKEIL的DEBUGKEIL的DEBUGKEIL的DEBUGKEIL的DEBUG

使用特权

评论回复
30
highgear| | 2012-6-29 12:29 | 只看该作者
21楼理解的没错。你的程序中的 while (1) 根本就不会执行

我们最容易犯的错误就是把错误推卸出去。

使用特权

评论回复
31
hnlxy712| | 2012-6-29 12:29 | 只看该作者
用KEIL的DEBUG  监视

使用特权

评论回复
32
hnlxy712| | 2012-6-29 12:29 | 只看该作者
用KEIL的DEBUG  监视

使用特权

评论回复
33
hnlxy712| | 2012-6-29 12:30 | 只看该作者
用KEIL的DEBUG  监视

使用特权

评论回复
34
lyjian| | 2012-6-29 12:34 | 只看该作者
最看不起的就是这种人

使用特权

评论回复
35
3htech| | 2012-6-29 12:34 | 只看该作者
一件事情的发生由内部因素和外部因素两部分组成。首先请先检查内因,确认内因无误了再检查外因。不要一开始就怀疑外部因素。
Keil是经过很多工程师使用过的。由于您的代码不太可能有什么奇怪的操作,所以出问题的应该还是您。

确认程序跑飞,你直接在main里面写while(1),不要加判断进,然后你在while1里做一些操作,比如LED翻转。。。。。。。

分析问题,解决问题,验证问题。。。。。

使用特权

评论回复
36
vrgood| | 2012-6-29 12:48 | 只看该作者
还在。。。?
程序不是这样写的,替你改下,体会下实际应用程序的结构。
。。。。。
void main()
{
    while(1)
   {
      D1=0;
      delay(100);
      D1=1;
      ms(100);
      aa++;
      if(aa>=10)
      {
          D1=0;
          while(1);
      }
  }
}

使用特权

评论回复
37
小管| | 2012-6-29 12:55 | 只看该作者
aa++;
if(aa>=1)
{
  D1=0;
  while(1);

改一下这里,你就发现会停了。

使用特权

评论回复
38
yangvu| | 2012-6-29 13:00 | 只看该作者
这种问题有什么好讨论的,

使用特权

评论回复
39
呆板书生| | 2012-6-29 13:49 | 只看该作者
无话可说

使用特权

评论回复
40
291355171|  楼主 | 2012-6-29 14:05 | 只看该作者
还在。。。?
程序不是这样写的,替你改下,体会下实际应用程序的结构。
。。。。。
void main()
{
    while(1)
   {
      D1=0;
      delay(100);
      D1=1;
      ms(100);
      aa++;
      if(aa>=10)
  ...
vrgood 发表于 2012-6-29 12:48


嗯,本来我平常写程序也是这样写的,加在while循环里面的,昨晚手贱,想不写,于是便没写。下到板子上才发现了这个问题。。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则