正所谓 "知己知彼百战不殆" , 要想了解一款单片机的性能,可以通过简单的循环就能判断出它的性能:
while(1)
{
LPC_GPIO2->FIOPIN ^= (1<<0);
delay();
}
采用默认工程,CCLK是100MHz.
我们分别调出us和ms级的延时函数
/*********************************************************************
用示波器测量
@ CCLK=100MHz
//25->1.19us 500->20.2us 1000->40us 2000->80.15us
5000->200.15us 25000->1ms
//50000->2ms 100000->4ms
*********************************************************************/
void delay_us(int a)
{
int i=a*25;
while(i--);
}
void delay_ms(int a)
{
int i=a*25000;
while(i--);
}
经过测试delay_ms函数是相当准确的,us函数前10us有点点偏大,后面几乎就准确了.
如果将delay()屏蔽掉,可以测出最大的运行速度,如下图所示: