一种超级TIMER的制作方法

文档序号:13265110阅读:167来源:国知局
技术领域本发明涉及一种TIMER,具体是一种超级TIMER。

背景技术:
现在TIMER设计过于单一,只有计数,计时等几个功能。

技术实现要素:
本发明的目的在于提供一种超级TIMER,以解决上述背景技术中提出的问题。为实现上述目的,本发明提供如下技术方案:一种超级TIMER,包括PWM模块、PWM中心对齐模块、捕获比较模块、计时器/计时器模块和刹车控制模块;所述PWM模块、PWM中心对齐模块、捕获比较模块和刹车控制模块均连接在计时器/计数器模块上。作为本发明的优选方案:所述计时器/计数器模块选用16位定时器。与现有技术相比,本发明的有益效果是:本发明把多种功能集合在一起,可以应用更广泛,运用更多的领域,而且节省资源浪费。附图说明图1为本发明的整体结构框图;图2普通PWM模式下的工作原理图;图3为普通模式下PWM波形图;图4为带死区的互补输出说明波型图;图5为中心对齐模块的波形图;图6为捕获比较模块的工作原理图;图7为复补输出、高有效、有死区的的PWM互补波的示图。图8为本发明实施例的原理图。具体实施方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。请参阅图1-8,本发明实施例中,一种超级TIMER,包括PWM模块、PWM中心对齐模块、捕获比较模块、计时器/计时器模块和刹车控制模块;所述PWM模块、PWM中心对齐模块、捕获比较模块和刹车控制模块均连接在计时器/计数器模块上。计时器/计数器模块选用16位定时器。本发明的工作原理是:定时器寄存器列表定时器1寄存器功能列表TOVR=TOVRH+TOVRLT计数器=TH+TLTCCRx=TCCRxH+TCCRxLTCMPR=TCMPRH+TCMPRL对于定时器16位寄存器:读写要求统一如下:要求先高8位,后低8位,同时写入2字节方有效,否则可能会出现错误。定时器中断入口地址:6BH(TF2),在中断源分组:组5。定时器捕获PWM中断入口地址:XXH(TCHxF,x=1~3和TCMPF共用一个入口),在中断源分组:组5。定时器中断和定时器捕获PWM中断在同一中断源组,因定时器捕获PWM中断入口XXH在前,在这两中断同时来时,先进入到定时器捕获PWM中断。基本定时功能:T定时器为2组16位计数器和目标计数器等组成。通过TCKSEL配置T分频比,通过ET选择产生中断(可选不产生),通过TR使能T,T计数器开始计数,当T计数器与TOVR相同时,产生溢出产生中断(根据设置),T计数器清零,并重新计数。使用方法:1、配置T分频比,配置寄存器TCON的TCKSEL[2:0]选择需要的分频比;2、配置计时达到目标值时是否产生中断,配置中断使能寄存器的ET位;3、设置计时目标值,设置需要的TOVR值;4、清除T计数器,可直接将T计数器写0,也可以通过寄存器TCON的TCLR位置1清除;5、清除T中断标记,配置中断标记寄存器的TF2位置0;6、使能开启定时器开始计时,配置寄存器TCON的TR置1;7、使能总中断,EA置1;8、等待中断;9、产生中断(中断入口地址:6BH),T计数器清零,并重新计数,自动清TF2标记(如果不产生中断,使用查询方式,这需要用户自己清TF2标记),执行中断程序,退出;10、重复到8项。捕获模式:定时器共有3路捕获,分别从Px.1(捕获1)、Px.2(捕获2)、Px.3(捕获3)输入。该模式能够配置捕获计数时钟的快慢,配置需要捕获的沿的个数,并选择捕获下降沿或者上升沿。捕获完成后,相应的完成标志会置1,若使能了中断,将产生中断请求。定时器的3个捕获中断共用一个中断入口地址(XXH),通过TCHxF标记查询是那个通道。需要注意,要使用捕获功能必须让定时器1工作起来。捕获x(x=1~3)的配置步骤:1、配置定时器分频比,配置寄存器TCON的TCKSEL[2:0]选择需要的分频比;2、配置计时达到目标值时是否产生中断,配置中断使能寄存器的ET位;3、设置计时目标值,设置需要的TOVR值;4、清除T计数器,可直接将T计数器写0,也可以通过寄存器TCON的TCLR位置1清除;5、清除定时器中断标记,配置中断标记寄存器的TF2位置0;6、设置需要的捕获通道工作在捕获模式,配置寄存器TCHxCON的TCHxMOD置1;7、选择需要捕获的沿的个数A。配置寄存器TCHxCON的TCAPxDLY[2:0]的值;8、选择需要捕获的沿(下降沿捕获或者上升沿捕获);9、打开捕获完成中断。将寄存器TCHxCON的TCHxE置110、使能需要的捕获通道功能,将寄存器TCHxCON的TCHxEN置1。11、使能开启定时器,配置寄存器TCON的TR置1;12、使能总中断,EA置1;13、等待中断;14、如果T计数器达到TOVR则产生中断(中断入口地址:6BH),T计数器清零,并重新计数,自动清TF2标记(如果不产生中断,使用查询方式,这需要用户自己清TF2标记),执行中断程序,退出;15、当捕获完成,产生中断请求(中断入口地址:XXH),相应的捕获完成标志位TCHxF将置1。16、读取寄存器TCCRx的捕获完成值,共16位。退出中断(不管是否产生中断,系统不会自动清TCHxF,需要用户自己清TCHxF标记)。17、重复到13项,通过两次捕获完成值计算,即得到被捕获波形时间。PWM产生:定时器可产生3路PWM,各路PWM都能产生互补波型。定时器的PWM波形的周期将由寄存器TOVRL的值和TCKSEL决定。当定时器的T计数器计数到TOVR后,T计数器将自动清0,并且TF置1,完成一个PWM周期,如果客户配置了中断,则产生中断。也就是说,定时器的三路PWM波型的周期是一样的。配置寄存器TCCRx选择PWMx波形占空比。它们的值必须在0与TOVR之间。选择PWMx波形输出的有效电平,配置寄存器TCHxTRM。若使能了中断,将产生中断请求,定时器的PWM的中断同3个捕获,中断共用一个中断入口地址(定时器的3个捕获中断同一个中断入口地址:XXH)。TPWMx(x=1~4)的配置步骤:1、配置T分频比,配置寄存器TCON的TCKSEL[2:0]选择需要的分频比;2、配置计时达到目标值时是否产生中断,配置中断使能寄存器的ET位;3、设置计时目标值,设置需要的TOVR值(PWM波形的周期);4、清除T计数器,可直接将T计数器写0,也可以通过寄存器TCON的TCLR位置1清除;5、清除T中断标记,配置中断标记寄存器的TF2位置0;6、设置需要的PWM通道工作在PWM模式,配置寄存器TCHxCON的TCHxMOD置0;需要互补输出时,配置TCHxCON的TCAPxDLY2的值置1;7、选择PWM输出有效电平,配置寄存器TCHxCON的TCHxTRM的值(低输出有效或高输出有效);有互补时选择PWMN输出有效电平,配置TCHxCON的TCAPxDLY1的值(低输出有效或高输出有效)。8、选择PWM占空比完成是否产生中断,配置寄存器TCHxCON的TCHxE(置1中断);9、设置TCCRx的值得到需要的占空比,需要注意此值在0~TOVR之间;当TCCRx=0,则PWM一直输出无效值(PWMN相反);当TCCRx〉=TOVR,则PWM一直输出有效值(PWMN相反)。10、有复补时需要配置死区时间,配置TPWMDZ到所需要的时间。11、使能PWM,将寄存器TCHxCON的TCHxEN置1。12、使能开启定时器,配置寄存器TCON的TR置1;PWM输出有效电平(PWMN相反);13、使能总中断,EA置1;14、等待中断;15、如果T计数器达到TCCRx则产生中断(中断入口地址:XXH),PWM波输出翻转输出无效电平(完成占空比)(PWMN相反),T计数器继续计数,清TCHxF标记(不管是否产生中断,系统不会自动清TCHxF,需要用户自己清TCHxF标记),执行中断程序,退出;(因有4个通道共用此地址,需要在进中断后,查询是那一路TCHxF产生的中断,最对应的程序处理)16、等待中断;17、如果T计数器达到TOVR则产生中断(中断入口地址:6BH),T计数器清零,并重新计数,自动清TF2标记(如果不产生中断,使用查询方式,这需要用户自己清TF2标记),PWM波输出翻转输出有效电平(完成PWM周期)(PWMN相反),执行中断程序,退出;18、重复到14项,即可得到连续PWM。19、关闭PWM,将TCHxEN置0,对应通道的PWM被关闭,其PWM脚输出为无效电平;或者寄存器TCON的TR置0关T功能,则T对应所有PWM及相关功能将被关闭。(需要注意所有PWM通道,在PWM功能关闭时PWM脚输出已切换GPIO模式,需要用户在初始化时就要将其GPIO配置成无效电平值,用户使用PWM后,只要不修改GPIO配置,在PWM功能关闭时,切换到GPIO模式仍为无效电平值)。死区只会影响输出到PWM脚的输出有效时间,但不影响PWM周期。PWM输出波型有效时间等于设定的时间减去死区时间。所以加入死区后,PWM脚输出有效时间比预设置的PWM有效时间短。输出波型图如图4所示。因T中三路PWM是周期是通过的TOVR得到,所以三路PWM的周期是一样的。不仅如此,只要是T所有共用的部分,他们的配置应该是一样的,如有不同则不能实现。例如,需要得到两个不同周期的PWM,就需要用两个计时计数器来实现。在输出PWM中,修改PWM占空比会在下周期有效。如果要修改输出波型极性(输出高有效或低有效),需要关闭本路PWM功能才能修改,修改好后重新使能本路PWM使其修改有效。只要计时器工作中(比如已有通道(PWM或捕获)(1和2通道)在工作),再开启新的PWM通道(3通道),无须将工作中的通道(1和2通道)停止,配置好PWM通道(3通道)并使能,其在下一个周期开始时有效并输出。对于PWM极限波型请参考PWM特殊情况说明。如图7所示。PWM中心对齐:定时器的PWM波形输出具有中心对齐模式,通过将寄存器TPWMCON的TPWMMODSEL置1使能。3对PWM主波中心值相同。每路PWM的配置同单路PWM配制。PWM刹车:定时器的PWM波形输出具备刹车功能。即当刹车触发有效时,定时器的所有PWM波形(主波和补波)立刻停止输出,并回到无效电平。刹车完成后,标志位置1。用户需要重新配置使能PWM输出(主波和补波)。通过将寄存器TPWMCON的BKEN使能刹车模式。刹车触发源由寄存器TPWMCON的BKAT配置,0为软件触发刹车,1为硬件触发刹车(P2.4口输入触发电平)。软件刹车:将寄存器TPWMCON的BKSOFT置1触发,将其置1后,硬件会自动清0。刹车完成后,寄存器TPWMCON的BKF标志位将置1,其需要由软件清0。硬件刹车:通过寄存器TPWMCON的BKSEL,选择P2.4口输入触发有效电平。当硬件刹车触发的输入电平通过输入信号滤波时间BKFLT滤波后一直有效时,标志位BKF也将一直为高。需要撤销硬件刹车后,才能清除该标志位。比较中断定时器有一路用于做比较中断功能,用户可实时更新比较计时功能用。需要在定时器开起的情况下使用此功能。用户可设置TCMPR,并配置对应的中断功能,T计数器与TCMPR相等时,产生中断,去处理客户的中断程序。客户可立即修改TCMPR,T计数器与TCMPR再次相等时,产生中断,去处理客户的中断程序。定时器的比较中断功能与定时器的3个捕获中断共用一个中断入口地址(XXH)。使用方法:1、选择定时器的时钟分频。配置寄存器TCKSEL[2:0]和TOVR等;2、打开定时器。将TR置1;3、设置需要中断的值TCMPR;4、打开比较中断完成中断。将寄存器TCMPCON的TCMPE置1;5、清寄存器TCMPCON的TCMPF置0;6、开启比较中断功能,将寄存器TCMPCON的TCMPEN置1;7、当T计数器与TCMPR相等时,标志位TCMPF将置1。若使能了中断,将产生中断请求(中断地址:XXH)。8、处理客户中断程序(用户需要查询TCMPF是否为1来确认是其产生中断),用户可配置下一个中断的TCMPR值,用户清TCMPF标记,退出中断9、重复到7项。图8所示为本发明的一种实施例,如用户配置TCMPR在A的位置,等待当T计数器与TCMPR相等时,产生A位置中断,用户再配置TCMPR在B的位置,并退出中断(此时T计数器比TCMPR小);等待当T计数器与TCMPR相等时,产生B位置中断,用户再配置TCMPR在C的位置,并退出中断(此时T计数器比TCMPR小);等待当T计数器与TCMPR相等时,产生C位置中断,用户再配置TCMPR在A的位置,并退出中断;等待T计数器=0再计数到TCMPR相等时,产生A位置中断。如果客户在A位置中断后配置下次为B点中段,可他退出中断时,T计数器已比他大,则需要等T计数器=0再计数到B点时才能产生中断。同样如果客户在C位置中断后配置下次为A点中段,可他退出中断时,T计数器计数到TOVR,并又计数到比A点大时,则需要等T计数器再次过A点时,才能产生中断。对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施例中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1