分频计数的复位

今天写了个1/40分频的计数器,发现了一个奇怪的问题:分频之后,在第一个二分之一周期内,是输入时钟的1/19分频,从第二个开始就是1/20分频,以为哪里出问题了。

 然后就想这是怎么回事呢?以前也经常做分频计数什么的,不过一直没有注意过这个问题。到底是什么原因呢,觉得肯定是计数出了问题。

复位的时候,计数器为零,复位结束后,直接从1开始计数,等计数到19,计数器赋值为零,同时输出波形发生翻转,共记了19次,开始下一次计数,从零开始。如果把复位时的计数器初值改为19,复位结束后,时钟上升沿一到来,就进行判断,从零开始计数,再次计到19时,产生同样的操作,不过这次计了20次。所以就是下面的结果: 

代码修改部分如下:

 

 之前代码 :

 觉得这种方法还不错,以后写定时器就这样写了,复位直接把计数初值设置为最大,一开始就进行判断,从零计数。

 

posted on 2012-06-20 13:40  小匠  阅读(372)  评论(0)    收藏  举报

导航