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的晶振。。。 |