|
MSP430关于延时时间的问题。
#include
/*
* main.c
*/
void main(void)
{
WDTCTL = WDTPW + WDTHOLD;
unsigned int i;
unsigned char j;
P1DIR |= BIT0;
P1OUT &= ~BIT0;
while(1)
{
P1OUT ^= BIT0;
for(i=0; i<8333; i++)
{
for(j=0; j<10; j++);
}
}
}
这个延时大概是1S,也就是灯一亮一灭是1S的时间。具体算法:
默认时钟:大约是1M的,这个《MCU工程师炼成记》和 数据手册里面都有提到。
两个For循环大概是6个时钟吧? 这个是欢迎高手来批评指正
8333*10*6=499980个指令。乘上2也就大约是100 0000了。1M时钟执行100 0000条指令的时间是1S。单周期的。
|
|