为什么500us的延时函数就可以产生1kHz的频率呢,那如果要产生2kHz,5kHz呢
追答500us高电平,500us低电平,那周期不正好是1MS嘛,所以频率就是1K HZ啊。 如果是其它频率你可以换个延时函数啊,给你个 MS 延时函数,
void delayms(unsigned int i)
{
unsigned char j;
while(i--)
{
for(j=0;j<115;j++); //1ms基准延时程序
}
}
你只需要在 delayms函数中,修改参数即可。
比如, delayms(100)就是100MS,
delayms(1000) 就是1S。
那中间需不需要反相什么的呢,比如P1^0=~P1^0,这个又是干嘛用的呢
追答这就是取反,P1^0=~P1^0 ,延时。就相当于
fmq=0;
延时;
fmq=1;
延时);
它们是相同的。