打印

清大家看看 这个程序为什么会这样,

[复制链接]
1429|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zifeiyuuuu|  楼主 | 2009-8-11 12:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
delay_500ms()    ---1
  {unsigned int m,n;   --2
   for(m=0;m<5;m++)  --3
   for(n=0;n<3000;n++);   //延时1ms---4
   }     ---5
void Oscillator_Init()    --6
{                ----7
    int i = 0;   ---8
    OSCXCN    = 0x66;  ----9
    for (i = 0; i < 30; i++);  // Wait 1ms for initialization  -----10
    while ((OSCXCN & 0x80) == 0);              -----11
    CLKSEL    = 0x01;           ----12
    OSCICN    = 0x00;              ----13
}                                   ----14
main()                              ----15
{                                    ------16
     P2MDOUT   = 0x20;              -----17
     XBR1      = 0x40;                ----18
     Oscillator_Init();                  ----19
while(1)            ----20
{                         ----21
P2_5=1;                       -----22
  delay_500();                  ---23
  P2_5=0;                       -----24
  delay_500();         ------25
     }                      ------26
}
上面这个程序在第3和4行, 如果 m*n(无符号整型)的值打过194就会跳出20行的 死循环, 如果m*n(定义为无符号字符型), 反而可以达到250左右,  这是个什么逻辑,

6M的晶振。。。

相关帖子

沙发
jerkoh| | 2009-8-11 12:13 | 只看该作者
本帖最后由 jerkoh 于 2009-8-11 12:51 编辑

:)
delay_500();                   这个函数都没有 你怎么调用啊

使用特权

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

本版积分规则

12

主题

96

帖子

0

粉丝