一种可滤波的计数器的制造方法
【技术领域】
[0001]本发明涉及一种计数器,具体是一种可滤波的计数器。
【背景技术】
[0002]随着智能家居的快速兴起,传统单片机中央处理器(mcu)所集成的独立外设计数器局限性越来越大,局限性在于需要大量的软件程序去配合计数器进行工作,增加了软件的复杂性,并且占用了中央处理器的资源,从而降低了算法的运行速度。
[0003]针对在使用计数器的计数功能时,由于外部输入信号在电平转变时会发生抖动,造成计数器误计数,从而影响到整个系统的程序运行,传统的解决方法就是需要在程序里面加个延时处理,造成mcu不能及时去处理其他的算法。
【发明内容】
[0004]本发明的目的在于提供一种可滤波的计数器,以解决上述【背景技术】中提出的问题。
[0005]为实现上述目的,本发明提供如下技术方案:
一种可滤波的计数器,包括双向1 口 PAD、同步电路、滤波电路和计数器,所述双向1 口PAD依次连接同步电路、滤波电路和计数器。
[0006]作为本发明进一步的方案:所述双向1口PAD的输入信号经过同步电路后,得到etv_in信号,当预分频Psc=O时,表示计数器的时钟clkl无需进行分频,当预分频psc为其它值时,计数器的时钟进行psc+Ι分频得到clk2,clkl与clk2通过一个选择器得到clk_cnt时钟;当32位滤波宽度N=O时,表示etv_in信号无需进行滤波,是一个干净信号;当32位滤波宽度N不等于O时,表示开启滤波功能,使用时钟clk_cnt连续采样到N+1个etv_in;在开启滤波时,etv_in经过一个寄存器后得到etv_in_reg,当etv_in不等于etv_in_reg时,滤波器的count自动清零,或者count在每一个clk_cnt上升沿到来时加一,直到count等于32位滤波宽度N时,就认定当前etv_in_reg是一个有效的信号,并且count自动清零;当得到一个有效的etv_in_reg信号,就能够根据计数器的配置,是上升沿/下降沿,计数器加一/减一。
[0007]作为本发明再进一步的方案:当计数器使能cen信号开启,双向1口PAD自动切换成输入状态。
[0008]与现有技术相比,本发明的有益效果是:本发明将电平转变时的波形的抖动进行滤波,从而使计数器进行正确工作,滤掉信号抖动,使计数器正确计数,简化程序,减少mcu的运算工作量。
【附图说明】
[0009]图1为可滤波的计数器的结构示意图。
【具体实施方式】
[0010]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0011 ]请参阅图1,本发明实施例中,一种可滤波的计数器,包括双向1 口 PAD、同步电路、滤波电路和计数器,所述双向1 口 PAD依次连接同步电路、滤波电路和计数器。
[0012]所述双向1口 PAD的输入信号经过同步电路后,得到etv_in信号,当预分频psc=0时,表示计数器的时钟clkl无需进行分频,当预分频psc为其它值时,计数器的时钟进行psc+ 1分频得到clk2,clkl与clk2通过一个选择器得到clk_cnt时钟;当32位滤波宽度N=O时,表示etv_in信号无需进行滤波,是一个干净信号;当32位滤波宽度N不等于O时,表示开启滤波功能,使用时钟clk_cnt连续采样到N+1个etv_in;在开启滤波时,etv_in经过一个寄存器后得到etv_in_reg,当etv_in不等于etv_in_reg时,滤波器的count自动清零,或者count在每一个clk_cnt上升沿到来时加一,直到count等于32位滤波宽度N时,就认定当前etv_in_reg是一个有效的信号,并且count自动清零;当得到一个有效的etv_in_reg信号,就能够根据计数器的配置,是上升沿/下降沿,计数器加一 /减一。
[0013]当计数器使能cen信号开启,双向1口PAD自动切换成输入状态。
[0014]本发明的工作原理是:请参阅图1,本发明计数器的基本功能包括32位向上加/向下减计数器(cnt)、32位预分频(psc)、32位滤波宽度(N)。
[0015]本发明创新之处在增加了滤波器电路,滤掉信号抖动,使计数器正确计数,简化程序,减少mcu的运算工作量。
[0016]1、PAD是一个双向1 口,当计数器使能cen信号开启,PAD自动切换成输入状态;
2、PAD输入信号经过同步电路后,可以消除亚稳态,得到etv_in信号;
3、当psc=0时,表示计数器的时钟clkl无需进行分频,其它值时,计数器的时钟进行psc+Ι分频得到clk2,clkl与clk2通过一个选择器得到clk_cnt时钟;
4、当N=O时,表示etv_in信号无需进行滤波,是一个干净信号;
5、当N不等于O时,表示开启滤波功能,使用时钟clk_cnt连续采样到N+1个etv_in
6、在开启滤波时,etv_in经过一个寄存器后得到etv_in_reg,当etv_in不等于etv_in_reg时,滤波器的count自动清零,或者count在每一个clk_cnt上升沿到来时加一,直到count等于N时,就认定当前etv_in_reg是一个有效的信号,并且count自动清零;当得到一个有效的etV_in_reg信号,就可以根据计数器的配置,是上升沿/下降沿,计数器加一/减
O
[0017]对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。
[0018]此外,应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施例中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。
【主权项】
1.一种可滤波的计数器,包括双向1 口 PAD、同步电路、滤波电路和计数器,其特征在于,所述双向1 口 PAD依次连接同步电路、滤波电路和计数器。2.根据权利要求1所述的可滤波的计数器,其特征在于,所述双向1口PAD的输入信号经过同步电路后,得到etv_in信号,当预分频Psc=O时,表示计数器的时钟clkl无需进行分频,当预分频psc为其它值时,计数器的时钟进行psc+1分频得到clk2,clkl与clk2通过一个选择器得到clk_cnt时钟;当32位滤波宽度N=O时,表示etv_in信号无需进行滤波,是一个干净信号;当32位滤波宽度N不等于O时,表示开启滤波功能,使用时钟clk_cnt连续采样到N+1个etv_in;在开启滤波时,etv_in经过一个寄存器后得到etv_in_reg,当etv_in不等于etv_in_reg时,滤波器的count自动清零,或者count在每一个clk_cnt上升沿到来时加一,直到count等于32位滤波宽度N时,就认定当前etv_in_reg是一个有效的信号,并且count自动清零;当得到一个有效的etV_in_reg信号,就能够根据计数器的配置,是上升沿/下降沿,计数器加一/减一。3.根据权利要求1所述的可滤波的计数器,其特征在于,当计数器使能cen信号开启,双向1 口 PAD自动切换成输入状态。
【专利摘要】本发明公开了一种可滤波的计数器,包括双向IO口PAD、同步电路、滤波电路和计数器,所述双向IO口PAD依次连接同步电路、滤波电路和计数器。本发明将电平转变时的波形的抖动进行滤波,从而使计数器进行正确工作,滤掉信号抖动,使计数器正确计数,简化程序,减少mcu的运算工作量。
【IPC分类】H03K21/02
【公开号】CN105634471
【申请号】CN201511001553
【发明人】许建昆, 叶媲舟, 黎冰, 涂柏生
【申请人】深圳市博巨兴实业发展有限公司
【公开日】2016年6月1日
【申请日】2015年12月29日