|
RE: 請(qǐng)大家?guī)兔纯催@個(gè)單片機(jī)程序 void Delay10ms(50)是什么意思?
void Delay10ms(unsigned int c) //誤差 0us
{
unsigned char a, b;
//--c已經(jīng)在傳遞過來的時(shí)候已經(jīng)賦值了,所以在for語句第一句就不用賦值了--//
for (;c>0;c--)
{
for (b=38;b>0;b--)
{
for (a=130;a>0;a--);
}這是一個(gè)有輸入?yún)?shù)的延時(shí)函數(shù),當(dāng)執(zhí)行void Delay10ms(50) 語句時(shí),是將c賦值50。所以,執(zhí)行for (;c>0;c--)語句時(shí)c可以減50次,for (;c>0;c--)所包含的語句都將執(zhí)行50次。for (a=130;a>0;a--);自身要執(zhí)行130次,for (b=38;b>0;b--)語句要執(zhí)行38次,所以for (a=130;a>0;a--);執(zhí)行了130*38=4940次,再乘以 for (;c>0;c--)50次,for (a=130;a>0;a--);共執(zhí)行了130*38*50=247000次,假如執(zhí)行for (a=130;a>0;a--)一次需要0.000002秒,那么0.000002秒*247000次=0.494秒。
|
|