TJU_lixiao 发表于 2013-10-25 08:25 
这个for循环需要10个左右的指令周期吧。
200*5000*10/1000000=10
你好,按照这个程序来说for循环之执行200次的,就是说这个时间是不是应该是(200*10+5000*200)/1000000=1.002秒?换个说法,如果我把for循环取消,
程序写成如下:
#include <msp430g2553.h>
unsigned int j;
unsigned char i;
void Init_clock(){
DCOCTL =0;
BCSCTL1 =CALBC1_1MHZ;
DCOCTL =CALDCO_1MHZ;
}
void main(void) {
WDTCTL= WDTPW+WDTHOLD;
Init_clock();
P1DIR |=BIT0;
while(1){
P1OUT ^=BIT0;
j=50000; //理论上讲这段延时应该是50ms,延时两次就是100ms=0.1s,但是实测时间基本上是1s
//为什么是这样呢?难道这校准后时钟是0.1MHZ?没道理呀,也没进行分频啊,
//分频也不可能有10分频吧,为什么呢?
while(j--);
j=50000;
while(j--);
}
}
|