有要求的,外部计数脉冲的高、低电平要求至少持续一个时钟周期。
假设CPU晶振12M,12分频,即主频1M,也就是一个周期1微秒,那么计数脉冲的高低电平都必须大于1微秒,才能确保信号被CPU检测到,才能确保可靠的计数。
其实对于边沿计数,不只是单片机,就是数字电路也是一样的,上升沿也是同样,都要是的边沿,也不要求代电平的时间长短。
比如,单片机输出一个时钟脉冲的上升沿送给外部计数或锁存器,就可以完成计数或锁存过程,程序这么写的
clock=0;
clock=1;
这先输出低电平,clock=0; 然后紧接着就是高电平,clock=1; 这由0变成1,就是一个上升沿就有效,而这个低电平的时间是最短的了,只有一条指令的时间。同理输出下降沿也是如此。要的是边沿。当然,外部脉冲的频率要在允许的计数频率范围内。