摘要: 本应用说明描述了如何设置和使用MAXQ 系列微控制器中的2型定时器用于不同的应用。它包括源代码供参考。
MAXQ系列微控制器有三种类型的定时器:定时器0、定时器1和定时器2。
MAXQ定时器0类型是在许多8051微控制器上常见的定时器0类型之后建模的。MAXQ Timer 1是在8051 Timer 2的基础上设计的。大多数MAXQ产品都有一个名为timer 2的新定时器,这是MAXQ家族独有的。这个应用程序说明详细说明了如何为不同的目的设置和使用这个新的Timer 2,并包括一些源代码供参考。
定时器的三个主要用途是产生输出波形,计数输入信号的转换(包括计数系统时钟转换,因此作为定时器的功能),并对输入信号进行计时。本节介绍使用定时器2的配置模式来执行这些定时器功能的方法。
在这种模式下,计数器在内部由系统时钟或备用时钟(通常是32,768 Hz RTC时钟)提供,其中任何一个都可以选择通过1、2、4、8、16、32、64或128预先缩放。计数器然后用于控制初级和/或次级定时器引脚的输出,以产生各种波形。
通过改变重新加载(T2R)和比较(T2C)寄存器中的值,可以修改输出波形的频率和占空比。通过这种方式,MAXQ处理器可以产生脉宽调制(PWM)波形。输出可以选择性地使能,启动极性可以反转。频率和占空比的限制由选择作为源时钟的频率(无论是系统时钟还是备用时钟)和选择的时钟除数决定。最小脉冲宽度是预缩放源时钟的一个时钟周期(通过将比较值和重新加载值设置为相同的值或将比较值设置为FFFEh来选择)。最大脉冲宽度为预刻度源时钟的65,536个周期。预刻度因子为128,最大脉冲宽度为8,388,608个系统时钟周期-对于1 MHz系统时钟超过8秒。使用频率较低的备用时钟可以进一步提高这一点。
比较模式还提供了通过使用单次射击(SS2)能力产生单脉冲的能力。单次射击允许固件在触发之前设置脉冲的长度,排除了固件对脉冲计时和确定何时结束的要求。门控允许主引脚触发次级输出上的单个脉冲或打开和关闭计数器,允许次级引脚上的PWM输出被输入信号修改。比较模式还可以用于按照特定的时间表生成反复出现的中断。
在这种模式下,计数器来自内部,但用于对主定时器引脚上输入信号的持续时间进行计数或计时。计数器可以门控和触发输入信号的任何一个或两个边缘,允许灵活的定时脉冲,单事件,或循环波形。T2C寄存器中的值可以用来计算被测量事件的周期。
在这种模式下,主定时器引脚为计数器提供时钟源。在这种模式下,计数器计数主引脚上的转换,上升或下降边,或两者。次要引脚可用于输出波形,当计数溢出和计数器匹配特定值时切换。在这两种情况下也可以生成中断。
定时器2可以在16位模式下操作(在这种情况下只有一个计数器可用)或在8位模式下操作,将计数器视为两个8位计数器,可以独立使用。这为定时器电路提供了三个附加功能。当处于8位模式时,主计数器(高计数器)可用于比较、捕获或计数器功能,而副计数器(低计数器)可用于比较或PWM输出。
在这种模式下,每个8位计数器单独计数,可用于输出波形,但每个计数器来自相同的内部时钟源。通过对每个8位计数器使用不同的重新加载和比较值,可以在两个定时器引脚上输出波形的不同频率和占空比。
在这种模式下,一个8位计数器(高计数器)在捕获模式下工作,对输入信号的持续时间进行计时。另一个8位计数器(低计数器)在比较模式下工作,可用于输出波形。
在这种模式下,一个8位计数器(高计数器)在计数器模式下工作,对输入信号的转换进行计数。另一个8位计数器(低计数器)在比较模式下工作,可用于输出波形。
这个选项允许计数器像运行位(T2R)已经打开一样运行,但只在计数器的下一次溢出之前运行。然后计数器恢复到使用运行位来确定是否继续计数。在8位模式下,该位仅适用于主8位计数器(高计数器)。
此选项允许计数器关闭(即门控)一段时间,而固件无需手动切换运行位(T2R)。在比较和计数器模式下,对源时钟进行门控。在捕获模式下,门控应用于重新加载事件。
门控由主引脚上的值控制。这要求主引脚是一个输入(T2OE[0]=0),所以输出波形(如果需要)必须输出在辅助(或B)引脚上。门控只在主输入上可用。
极性位(T2POL[0]和T2POL[1])可用于反转输出波形。当使用此功能时,必须在设置各自的输出使能位(T2OE[0]和T2OE[1])之前设置它们。设置使能位后再设置极性位无效。T2POL[0]位也可以用来反转主引脚上的门控条件,当它不用作输出时。当两条边都被定义为捕获时,T2POL[0]位在捕获模式中也有额外的含义。在这种情况下,它定义哪条边开始一个单一的射击周期,并在启用了门控的情况下抑制一条边上的重新射击。
输出使能位(T2OE[0]和T2OE[1])决定主引脚和副引脚是否由定时器电路主动驱动。当输出使能位关闭时,这些引脚可以使用各自的端口输入寄存器作为输入读取。当主引脚不启用输出时,它可用于门控(关闭)计数器。
T2CI位(备用时钟选择)和T2DIV[2:0]位(时钟除数)用于设置时钟源和计数器使用的预刻度因子。T2CI用于在系统时钟和备用时钟之间进行选择。然后,它们中的任何一个都可以通过2(n)因子进行预缩放(n是存储在T2DIV中的从0到7的值)。
计数器在16位模式下有三个寄存器,在8位模式下有三个额外的寄存器。这些寄存器可以在任意一种模式下读写(8位或16位),但是低寄存器在8位模式下的行为不同。当工作在16位模式时,T2V, T2R和T2C分别作为16位计数器,重新加载和比较寄存器。当在8位模式下工作时,这三个寄存器作为低阶8位寄存器。高阶寄存器分别由计数器、重新加载和比较寄存器的T2H、T2RH和T2CH表示。此外,这些寄存器扮演主计数器的角色,T2V、T2R和T2C寄存器扮演次要角色。
这意味着当计时器处于8位模式和16位模式时,使用计时器寄存器的任何代码的操作都有很大的不同。因此,建议您专门为特定计时器使用8位模式或16位模式。如果您需要在不同时间在两种模式下使用它,则为每种模式使用单独的函数将减少程序员的困惑。
在16位模式下,T2V寄存器包含当前计数。当运行位(TR2)或单拍位(SS2)打开并且门控不活动(G2EN=0)时,该寄存器随所选时钟边缘(s)增加。如果门控是活动的(G2EN=1),那么除了TR2或SS2处于开启状态外,主引脚上的输入必须与主极性位(T2POL[0])极性相反,计数器才会增加。
T2R寄存器保存计数器的重新加载值。这个值在溢出时(已经达到FFFFh并且将再次增加)自动插入计数器(T2V)。
有三个控制和配置寄存器:T2CFG, T2CNA和T2CNB。T2CFG包含一般配置信息。
C/T2位(计数器/定时器选择)选择定时器是在计数器模式还是定时器模式下工作(捕获,比较,捕获与比较输出是定时器模式的子模式)。在定时器模式下,CCF[1:0]位(捕获/比较选择)决定定时器是处于比较模式(CCF[1:0] = 00)还是捕获模式(CCF[1:0] = 01、10或11)。在计数模式下,CCF位决定哪个边——下降边、上升边或两者——将被计数。在计数器模式下,CCF位中的值00不被使用,因为计数器没有什么可计数的。模式选择位(T2MD)决定定时器是作为一个16位定时器还是作为两个独立的8位定时器运行。设置时,选择两个8位定时器。辅助定时器总是比较/PWM定时器。
可以选择系统时钟或备用时钟(某些MAXQ实现中的32 kHz RTC时钟)作为源时钟,并且可以根据需要预先缩放其中的每个时钟。备用时钟选择位(T2CI)默认为0,它选择系统时钟。设置此位选择备用时钟。
预分频位(T2DIV[2:0])选择时钟除数,范围从1到128。预标量的公式为2(n),其中n为T2DIV[2:0]中的值。
T2CNA包含门控使能、单次射击、重载使能、运行使能、低运行使能、主输出极性、主输出使能和中断使能位。
门控使能位(G2EN)允许有选择地禁用计数器。单射位(SS2)允许计时器运行,直到下一个溢出条件,此时计时器停止。
捕获和重新加载位(CPRL2)指示定时器将其值捕获到捕获寄存器中,并从外部边缘的重新加载寄存器中重新加载该值。CPRL2不用于比较和计数模式。
运行使能位(TR2)允许运行主计数器,低运行使能位(TR2L)允许在8位模式下运行辅助计数器。
主极性选择位(T2POL0)选择主输出的初始极性。在通过T2OE0启用输出后更改此位没有影响。设置主输出使能位(T2OE0)打开主引脚的输出,并将其值设置为极性位(T2POL0)中的值。
设置主中断使能(ET2)允许在定时器模块启用中断(在IMR寄存器中设置适当的位)和全局中断已启用(IC寄存器位0设置为1)的情况下生成中断。当主计数器溢出(达到FFFFh)或匹配比较寄存器时生成中断。在这些情况下,适当的位(TF2表示溢出或TCC2表示比较)将被设置,并且应该由中断处理程序中的固件重置。失败重置这些位将导致重复中断,直到它们被重置或中断被禁用。
T2CNB包含比较和溢出标志,辅助中断使能,辅助输出极性和使能位。
当主计数器值与比较值匹配时,设置捕获/比较标志(TCC2)。
低捕获/比较标志(TC2L)类似于TCC2,但仅在8位模式下设置,并且低或辅助计数器匹配低比较值。
当主计数器溢出时设置溢出标志(TF2)。低溢出标志(TF2L)与TF2类似,但仅在8位模式下,低溢出或辅助计数器溢出时设置。副极性选择位(T2POL1)选择副或B输出引脚的初始极性。在通过T2OE1启用输出后更改此位没有影响。设置辅助输出使能位(T2OE1)打开辅助引脚的输出,并将其值设置为极性位(T2POL1)中的值。辅助输出不直接链接到辅助计数器,因为在16位模式下,主计数器输出它,但在8位模式下,低计数器输出它。
设置辅助中断使能(ET2L),在8位模式下,当辅助或低8位计数器的TF2L或TC2L位被溢出(TF2L)或比较(TC2L)设置时,会产生中断。16位模式下不使用ET2L位。
下面的代码将输出一个频率为100hz,占空比为1/3的信号。该代码是为时钟速度为4.9152 MHz编写的。重载值4000h(16384十进制)在重载和溢出以及随后的重载之间提供了C000h(49152十进制)时钟周期,周期为10ms (100hz)。C000的比较值给了我们32768个时钟周期(C000h - 4000h),或者在重新加载后6.7 ms,比较(因此,脉冲边缘)将发生。
T2POL1位设置了初始值,因为我们使用的是次级输出,主输出用于门控。在这种情况下,T2POL0位选择门控电平。当T2POL1设置为0时,输出的初始值为0,因此输出为6.7毫秒的低电平,然后为3.3毫秒的高电平。只要主引脚保持高位,就会输出1/3占空比波形。当主引脚被拉低时,计数器将停止计数,并将在当前水平保持副引脚。通过将T2POL1设置为1,波形可以反转(使2/3占空比脉冲)。通过将T2POL0设置为1,可以将门控电平改为活动高电平。
移动t2v0, #04000h;设置重新加载值以保持第一脉冲;从超长移动T2R0, #04000h;重载值移动T2C0, #0C000h;比较值移动T2CFG0, #000h;;0000,0000 -使用系统时钟(0),除以1 (000),;16位模式(0),比较模式(00),c/t2=定时器(0)移动T2CNB0, #040h;0100,0000 - ET2L关低中断在16位模式下不可用(0),;次OE开(1),POL1 =低起始值(0),预留(0);TF2未使用(0),TF2L未使用(0),TCC2未使用(0),;TC2L不使用(0)移动T2CNA0, #009h;0000,1001 - ET2关闭-不需要中断(0),;primary OE off作为primary引脚用于门控(0),;POL0低,主引脚低(0)时门控,不需要TR2L (0);TR2开启,运行使能(1),不需要CPRL2 (0),;不需要SS2(0),启用门控(1)
下面的代码是为MAXQ2000部件编写的,该部件有3个独立的Timer 2s。它使用模块4中的第三个计时器。它也为4.9152 MHz的系统时钟频率编写,当触发时将输出宽度为两毫秒的低脉冲,输出通常为高。在脉冲结束时,将产生一个中断来表示脉冲已经结束。这段代码在8位模式下使用定时器,还演示了预分频器的使用。
为了获得所需的两毫秒周期,使用64个预刻度值和154个预刻度时钟(4915200 / 64 * 0.002 = 153.6)的定时器周期。选择66h (100h - 9Ah)作为比较值,在计数器从FFh溢出到00之前,我们得到9Ah(154个十进制)个刻度。将重新加载值设置为65h使脉冲在我们设置SS2(单次射击)位后开始1 tick。
SetupPulse:;这段代码设置了计时器,应该运行一次;# inthandler;设置中断向量。移动IC.0, #1;启用全局中断。移动IMR.4, #1;为模块3启用中断。;定时器0在模块3中,定时器1 &2在模块4移动T2CFG2, #068h;;0110、1000——使用系统时钟(0),除以64 (110),;8位模式(1),比较模式(00),c/t2=定时器(0)移动T2CNB2, #000h;0000,0000—ET2L关闭,不需要低中断(0),次OE关闭(0),;T2POL1 =未使用(0),保留(0);TF2由定时器产生(0),TF2L未使用(0),TCC2未使用(0),;TC2L不使用(0)移动T2CNA2, #0E0h;1110,0000—ET2开启,中断将产生(1),主OE开启(1),;T2POL0高(1),不需要TR2L (0);TR2关断,未使能运行(0),不需要CPRL2 (0), SS2稍后设置(0),;门控关闭(0)移动t2h2, #065h;设置重载值move T2RH2, #065h;移动T2CH2, #066h;0x100 - 0x66(比较值)= 0x9A = 154个刻度
每当要触发脉冲时,应该调用以下代码。
TriggerPulse:移动T2CNA2.1, #1;设置单个拍摄位来启动定时器。下面是中断代码的一部分。IntHandler:move c, T2CNB2.3, jump nc, nontimerinmove T2CNB2.3, #0;关闭溢出位,中断服务;这里是脉冲结束的代码…NonTimerInt:;其他中断代码在这里
下面的代码将生成两个中断,一个每125微秒中断一次,另一个每毫秒中断一次。它使用一个定时器分成两个8位定时器。由于两个8位计时器将从相同的输入时钟运行,因此我们希望选择一个时钟除数,使两个计时器的计数都小于256(8位计数器的最大值)。使用备用时钟作为源为我们提供了一种方法,可以在不需要分割系统时钟的情况下获得两种计时,其代价是一定的准确性:高计数器的实际计时接近122微秒,低计数器的实际计时接近0.98毫秒,因为备用时钟以32768 Hz运行,并且所需的周期没有偶数除数可用。我们将从低计数器获得每秒1024个中断,从高计数器获得每秒8192个中断。高中断和低中断都是启用的,中断的类型由TF2和TF2L位标识,必须清除以服务中断。
;这段代码设置了计时器,应该运行一次;# inthandler;设置中断向量。移动IC.0, #1;启用全局中断。移动IMR.3, #1;为模块3启用中断。;定时器0在模块3中移动T2CFG0, #088h;;1000,1000——使用32khz时钟(1),除以1 (000),;8位模式(1),比较模式(00),c/t2=定时器(0)移动T2CNB0, #080h;1000000——ET2L on,产生低中断(1),次OE关(0),;T2POL1 =未使用(0),保留(0);TF2由定时器(0)产生,TF2L由定时器(0)产生,;TCC2不使用(0),TC2L不使用(0)移动T2CNA0, #080h;1000000—ET2开启,将产生中断(1),主OE关闭(0),;不需要T2POL0 (0), TR2L关闭,稍后再设置(0);TR2关断,稍后设置(0),CPRL2不需要(0),;不需要SS2(0),门控禁用(0)移动t2h0, #0FCh;设置重载值,以防止第一个脉冲超长移动T2RH0, #0FCh重新加载值(0x100 - 0xFC = 4 ticks)移动T2CH0, #000h;移动t2v0, #0E0h;设置重新加载值,以防止第一个脉冲移动过长;重载值(0x100 - 0xE0 = 32 ticks)移动T2C0, #000h;move acc, T2CNA0;开启高、低运行(TR2、TR2L)或#018h;移动t2cna0, ACC
下面是中断处理程序代码的一部分:
IntHandler:移动c, t2cnb0.3跳nc, no8khz;代码为8KHz中断此处移动T2CNB0.3, #0No8KHz:移动c, t2cnb0.2跳转nc, no1khz;T2CNB0.2, #0No1KHz:;其他中断代码如下
这个例子乘以一个输入信号。该代码使用第二个计时器(它们编号为0、1和2),并设置为高脉冲的持续时间计时。直到看到上升边缘,它才开始计时。CPRL2位允许在捕获时重新加载,以便后续脉冲也可以定时。在这种模式下,T2POL[0]和SS2位的含义略有不同。SS2位(单镜头)用于抑制计数,直到检测到开始边缘。这使得计时器可以在任何时候设置,即使当输入当前是高的,因为计时器将不会启动,直到下一个上升沿。在前面的例子中,T2POL[0]位选择门控电平而不是输出极性。0的门控电平防止计数器在输入低电平时运行。这个例子适用于更长的脉冲,并将系统时钟除以128。系统时钟频率为4.9152 MHz,计时器的分辨率约为26微秒,在溢出前可以数到1.7秒。
下面的代码设置捕获。
;#IntHandler;设置中断向量。移动IC.0, #1;启用全局中断。移动IMR.4, #1;为模块3启用中断。;定时器0在模块3中,定时器1 &2人在模块4;重复捕获高脉冲移动T2CFG1, #074h;;0111,0100——使用系统时钟(0),除以128 (111),;16位模式(0),捕获下降沿(10),c/t2=定时器(0)移动T2CNA1, #08Fh;;1000、1111—ET2打开,将产生中断(1),主OE关闭(0),;T2POL0(门控)处于低位(0),TR2L关断,稍后设置(0);TR2 on (1), CPRL2 (reload on capture) on (1),;SS2 on(1),门控使能(1)移动T2CNB1, #000h;0000,0000—ET2L关闭,低中断未使用(0),次OE关闭(0),;T2POL1 =未使用(0),保留(0);TF2由定时器产生(0),TF2L未使用(0),;未使用TCC2(0),未使用TC2L (0)
下面是中断处理程序代码的一部分:
IntHandler:;寻找Timer2中断…move c, T2CNB1.1;捕获/重新加载flagjump nc, NoCapturemove T2CNB1.1, #0;将捕获事件代码放在这里,移除ACC, T2C1;捕获值现在在ACCNoCapture:移动c, T2CNB1.3;#0;;把处理溢出的代码放在这里;脉冲太长,无法用当前时钟速度和除数测量;可以在32位的值上加上65536来保持计数。把其他中断代码放在这里
下面的例子对主引脚上的传入脉冲进行计数,并在每8个脉冲之后产生一个中断。它还控制次级引脚上的输出波形,每8个输入脉冲切换一次。
;这段代码设置了计时器,应该运行一次;# inthandler;设置中断向量。移动IC.0, #1;启用全局中断。移动IMR.3, #1;为模块3启用中断。;定时器0在模块3中移动t2v0, #0FFF8h;设置重载值移动T2R0, #0FFF8h;重载值0x10000 - 0x0ffff = 8 ticks移动T2C0, #00000h;移动T2CFG0, #003h;0000,0011——使用系统时钟(0),除以1 (000),;16位模式(0),上升沿(01),c/t2=计数器(1)移动T2CNB0, #060h;011,0000—ET2L未使用(0),二次OE在(1)上,;T2POL1高位启动(1),预留(0);TF2由定时器产生(0),TF2L未使用(0),;TCC2由定时器(0)产生,TC2L不使用(0)移动T2CNA0, #088h;1000,1000—ET2 on,将产生中断(1),主OE未使用(0),;不使用T2POL0(0),不需要TR2L (0);TR2 on(1),不需要CPRL2 (0),;不需要SS2(0),禁用门控(0)
下面是中断处理程序的一部分
IntHandler:移动c, T2CNB0.3,跳nc, notimer移动T2CNB0.3, #0;服务中断;输入每8个脉冲的代码其他中断代码如下
在比较模式下,如果比较值和重新加载值相等,则在重新加载发生后的一个时钟周期发生输出上的第二次转换。当您希望脉冲宽度只有一个时钟周期时,这是一个有效的选项,但很容易让这种情况发生,而不是有意的,因为它们都默认为相同的值0。如果不使用比较值,则应将其设置在计时器使用的范围之外。通常将比较值设置为小于重载值的值就可以做到这一点。如果这是不可能的(由于使用重新加载值0),那么比较值应该设置为16位模式下的FFFFh或8位模式下的FFh。这将导致比较和溢出事件发生在同一个计时器时钟周期,从而防止输出的第二次转换。
输出启用应该在运行启用之前或同时打开。在输出启用之前设置运行启用可能会导致输出反转,因为在设置定时器运行和断言输出启用之间,中断可能会导致代码被挂起(当中断被服务时)。这可能导致在启用输出之前发生比较或溢出事件,从而导致输出具有相反的极性。这通常发生在B或次级输出上,因为输出使能(T2OE1)在T2CNB寄存器中,而运行位(TR2)和低运行位(TR2L)在T2CNA寄存器中。在这种情况下,应该首先设置T2CNB寄存器,或者应该设置T2CNA寄存器,将运行位设置为零,然后在所有寄存器配置完成后设置运行位。
模式 | T2MD | C / T2 | CCF 1:0 [] | T2OE [0] | T2OE [1] | T2POL [0] | T2POL [1] | G2EN | SS2 | CPRL2 |
16位与可选门控相比 | 0 | 0 | 00 | 0 =主输出未启用 | 0 =未启用辅助输出 1 =启用辅助输出 | 定义门控级别 0 =低 1 =高 | 定义次级输出的初始极性 0 =低 1 =高 | 0 =无门控 1 =主引脚使能门控 | 1 =单枪射击 0 =使用TR2运行 | 0 不习惯 |
16位与主输出相比已启用(无门控可用) | 0 | 0 | 00 | 1 =启用主输出 | 0 =未启用辅助输出 1 =启用辅助输出 | 定义初级输出的初始极性 0 =低 1 =高 | 定义次级输出的初始极性 0 =低 1 =高 | 0 启用主输出时不可用 | 1 =单枪射击 0 =使用TR2运行 | 0 不习惯 |
16位捕获只捕获一条边 | 0 | 0 | 01 =捕捉上升边缘 10 =捕获下降边 | 0 不习惯 | 0 不习惯 | 主引脚上的门控电平 0 =低 1 =高 | 0 不习惯 | 1 =门控启用 0 =禁用门控 | 1 =单枪射击 0 =使用TR2运行 | 捕获和重新加载 0 =关闭 1 = on |
16位捕获在两边捕获,不重新加载 | 0 | 0 | 双眼捕捉 | 0 不习惯 | 0 不习惯 | 主引脚上的门控电平 0 =低 1 =高 | 0 不习惯 | 1 =门控启用 0 =禁用门控 | 1 =单枪射击 0 =使用TR2运行 | 0 =捕获并重新加载 |
16位捕获在两边捕获,重新加载 | 0 | 0 | 11 =捕获两边 | 0 不习惯 | 0 不习惯 | 启动/停止边缘 0 =上升时开始/停止 1 =开始/停止下降 | 0 不习惯 | 0 =重新加载所有边 | 1 =单次射击T2POL[0]定义开始/停止边缘 0 =使用TR2运行 | 1 =捕获并重新加载 |
16位捕获捕获两条边,重新加载一条边 | 0 | 0 | 11 =捕获两边 | 0 不习惯 | 0 不习惯 | 非重新加载边缘和启动/停止边缘 0 =下降(上升时开始/停止) 1 =上升(下降时开始/停止) | 0 不习惯 | T2POL[0]定义只捕获边缘 | 1 =单次射击T2POL[0]定义开始/停止边缘 0 =使用TR2运行 | 1 =捕获并重新加载 |
16位计数器 | 0 | 1 | 01 =上升 10 =坠落 11 =两者都有 00 = none(未使用) | 0未使用 主引脚仅用于输入 | 0 =未启用辅助输出 1 =启用辅助输出 | 0未使用 主引脚仅用于输入 | 定义次级输出的初始极性 0 =低 1 =高 | 0未使用 不设置为1 | 0未使用 不设置为1 | 0未使用 |
双8位与门控相比 | 1 | 0 | 00 | 0 =主输出未启用 | 辅助计数器输出使能 0 =未启用 1 =输出启用 | 定义门控级别 0 =低 1 =高 | 定义次级计数器输出的初始极性 0 =低 1 =高 | 0 =无门控 1 =主引脚使能门控 | 0未使用 | 0未使用 |
双8位与无门控相比 | 1 | 0 | 00 | 1 =启用主输出 | 辅助计数器输出使能 0 =未启用 1 =输出启用 | 定义初级输出的初始极性 0 =低 1 =高 | 定义次级计数器输出的初始极性 0 =低 1 =高 | 启用主输出时不可用 | 1 =单枪射击 0 =使用TR2 仅适用于主计数器 | 0未使用 |
8位捕获+ 8位比较 | 1 | 0 | 1,10,11 主计数器就像在16位模式下一样(除了只有8位分辨率) | 参见16位捕获模式 | 辅助计数器输出使能 0 =未启用 1 =输出启用 | 参见16位捕获模式 | 定义次级计数器输出的初始极性 0 =低 1 =高 | 参见16位捕获模式 | 参见16位捕获模式 | 参见16位捕获模式 |
8位计数器+ 8位比较 | 1 | 1 | 01 =上升 10 =坠落 11 =两者都有 00 = none(未使用) | 0未使用 主引脚仅用于输入 | 辅助计数器输出使能 0 =未启用 1 =输出启用 | 0未使用 主引脚仅用于输入 | 定义次级计数器输出的初始极性 0 =低 1 =高 | 0未使用 不设置为1 | 0未使用 不设置为1 | 0未使用 |
社群二维码
关注“华强商城“微信公众号
Copyright 2010-2023 hqbuy.com,Inc.All right reserved. 服务热线:400-830-6691 粤ICP备05106676号 经营许可证:粤B2-20210308