首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

UPD78F0411 16 位定时器/事件计数器00 的操作(1)

UPD78F0411 16 位定时器/事件计数器00 的操作(1)

1.1 间隔定时器操作
如果16 位定时器模式控制寄存器(TMC00) 的第3 位和第2 位(TMC003 和TMC002) 为11 (清零&启动模式(在TM00 与CR000 相等时进入)),则启动计数操作与计数时钟同步。
当之后的TM00 值与CR000 值相等时,将TM00 清零(0000H) 并产生一个相等中断信号(INTTM000)。这个INTTM000 信号允许TM00 作为间隔定时器操作。


(e) 16 位定时器计数器00 (TM00)
通过读取TM00,获得计数值。
(f) 16 位捕捉/比较寄存器000 (CR000)
如果CR000=M,则间隔时间表示如下。
   间隔时间= (M + 1) 计数时钟周期
   禁止将CR000 设置为0000H。
(g) 16 位捕捉/比较寄存器010 (CR010)
通常CR010 不用作间隔定时器。但当CR010 的值与TM00 的值相等时,会产生比较相等中断(INTTM010)。
因此通过使用中断屏蔽标志(TMMK010)屏蔽中断请求。

1.2 方波输出操作
当16 位定时器/事件计数器00 用作间隔定时器时,通过将16 位定时器输出控制寄存器00 (TOC00) 设置为03H,可以从TO00 引脚输出一个方波。
当TMC003 与TMC002 被设置为11 时(计数清零&启动模式(在TM00 与CR000 相等时进入)),启动计数操作与计数时钟同步。
当之后TM00 的值与CR000 的值相等时,将TM00 清零(0000H)、产生中断信号(INTTM000)并反转TO00 引脚的输出。反转的TO00 引脚输出以恒定的间隔允许TO00 输出一个方波。


(e) 16 位定时器计数器00 (TM00)
通过读取TM00,获得计数值。
(f) 16 位捕捉/比较寄存器000 (CR000)
如果CR000=M,则间隔时间表示如下。
   方波频率= 1 / [2 (M + 1) 计数时钟周期
   禁止将CR000 设置为0000H。
(g) 16 位捕捉/比较寄存器010 (CR010)
通常CR010 不用作方波输出。但当CR010 的值与TM00 的值相等时,会产生比较相等中断(INTTM010)。
因此,通过使用中断屏蔽标志(TMMK010)屏蔽中断请求。


注   设置TOC00 时必须特别小心。

1.3 外部事件计数器操作
当预分频器模式寄存器00 (PRM00)的第1 位和第0 位(PRM001 和PRM000)被设置为11(使用TI000 引脚的有效沿计数)以及16 位定时器模式控制寄存器00 (TMC00)的第3 位和第2 位(TMC003 和TMC002)被设置为11 时,开始对外部事件输入的有效沿进行计数,并产生用于指示TM00 和CR000 之间相等的相等中断信号(INTTM000)。
如果要输入外部事件,可以使用TI000 引脚。因此定时器/事件计数器不能用作清零&启动模式(通过TI000 引脚有效沿(当TMC003 与TMC002 = 10 时)进入)下的外部事件计数器。
INTTM000 信号按下列时序产生。
   INTTM000 信号产生时序(第2 次或之后产生)= 外部事件输入的有效沿检测次数(CR000 的设置值+ 1)

但在定时器/事件计数器开始操作后,将按以下时序立即产生第1 次相等中断。
   INTTM000 信号产生时序(仅在第1 次产生)=外部事件输入的有效沿检测次数(CR000 的设置值+ 2)

如果要检测有效沿,则应在fPRS 时钟周期内对输入到TI000 引脚的信号进行采样。在一个周期内检测到两次脉冲沿时才认为检测到有效沿,这样可以消除一个窄脉冲宽度的噪音。


当16 位定时器/事件计数器00 用作间隔定时器时(参见6.4.1),通过将16 位定时器输出控制寄存器00 (TOC00) 设
置为03H,可以从TO00 引脚输出一个方波。
当TMC003 与TMC002 被设置为11 时(计数清零&启动模式(在TM00 与CR000 相等时进入)),启动计数操作与计数
时钟同步。
当之后TM00 的值与CR000 的值相等时,将TM00 清零(0000H)、产生中断信号(INTTM000)并反转TO00 引脚的输
出。反转的TO00 引脚输出以恒定的间隔允许TO00 输出一个方波。


(e) 16 位定时器计数器00 (TM00)
通过读取TM00,获得计数值。
(f) 16 位捕捉/比较寄存器000 (CR000)
如果CR000=M,当外部事件达到(M+1)时产生中断信号(INTTM000)。
禁止将CR000 设置为0000H。
(g) 16 位捕捉/比较寄存器010 (CR010)
通常CR010 不用作外部事件计数器模式。但当CR010 的值与TM00 的值相等时,会产生比较相等中断(INTTM010)。因此,通过使用中断屏蔽标志(TMMK010)屏蔽中断请求。


注  设置TOC00 时必须特别小心。

1.4 通过TI000 引脚有效沿输入进入的清零&启动模式下的操作
当16 位定时器模式控制寄存器00 (TMC00)的第3 位和第2 位(TMC003 和TMC002)被设置为10(清零&启动模式(通过TI000 引脚有效沿输入进入))并且向定时器/事件计数器提供计数时钟(由PRM00 设置)时,TM00 开始计数。在计数操作期间,如果检测到TI000 引脚的有效沿,则将TM00 清零(0000H)并再次开始计数。如果没有检测到TI000 引脚的有效沿,则TM00 溢出并继续计数。
可通过TI000 引脚的有效沿对TM00 清零。在操作开始后,不会立即启动计数器。
CR000 与CR010 可用作比较寄存器和捕捉寄存器。
(a) CR000 与CR010 用作比较寄存器
当TM00 的值与CR000、CR010 的值相等时,产生信号INTTM000 与INTTM010。
(b) CR000 与CR010 用作捕捉寄存器
当有效沿输入到TI010 引脚时(或者当反向的有效脉冲沿输入到TI000 引脚时),TM00 的计数值被捕捉到CR000,同时产生INTTM000 信号。
当有效沿输入到TI000 引脚时,TM00 的计数值被捕捉到CR010,同时产生INTTM010 信号。一旦捕捉了计数值,计数器即被清零(0000H)。
注意事项    不要将TI000 引脚的有效沿(PRM002, PRM001, 和PRM000= 110)设置为计数时钟。当PRM002,PRM001, 和PRM000= 110 时,将TM00 清零。

(1) 清零&启动模式(通过TI000 引脚有效沿输入进入)下的操作
(CR000: 比较寄存器, CR010: 比较寄存器)


(a) 和(b) 根据16 位定时器模式控制寄存器01 (TMC00) 第1 位(TMC001) 的设置不同有如下变化。
(a) 当TM00 与比较寄存器相等时反转TO00 引脚的输出电平。
(b) 当TM00 与比较寄存器相等或者检测到TI000 有效沿时反转TO00 引脚的输出电平。

(2) 清零&启动模式(通过TI000 引脚有效沿输入进入)下的操作
(CR000: 比较寄存器, CR010: 捕捉寄存器)

这是一个应用示例:当捕捉到计数值并清零时反转TO00 引脚的输出电平。
当检测到TI000 引脚的有效沿时,捕捉到的计数值存入CR010 并将TM00 清零(0000H)。当TM00 的计数值=0001H 时,产生比较相等中断信号(INTTM000),并反转TO00 引脚的输出电平。


这是一个应用示例:当捕捉计数值并清零时,从TO00 引脚输出CR000 设置的宽度(本例是4 个时钟)。
当检测到TI000 引脚的有效沿时,捕捉到的计数值存入CR010、产生捕捉中断信号(INTTM010)、将TM00 清零(0000H)并反转TO00 引脚的输出电平。当TM00 的计数值=0003H 时(已经计数4 个时钟),产生比较相等中断信号(INTTM000)并反转TO00 引脚的输出电平。

(3) 清零&启动模式(通过TI000 引脚有效沿输入进入)的操作
(CR000: 捕捉寄存器, CR010: 比较寄存器)


这是一个应用示例:当捕捉计数值并清零时,反转TO00 引脚的输出电平。
在检测到TI000 引脚的上升沿时将TM00 清零,而在检测到TI000 引脚的下降沿时,TM00 的计数值被捕捉到CR000。
当捕捉/比较控制寄存器00 (CRC00)的第1 位(CRC001)=1 时,TM00 的计数值被捕捉到CR000(在TI000 引脚输入信号的反向沿捕捉),但不产生捕捉中断信号(INTTM000)。然而当检测到TI010 引脚的有效沿时产生INTTM000信号。如果不使用INTTM000 信号,则将其屏蔽。


这是一个应用示例:当捕捉计数值并清零时,从TO00 引脚输出CR010 设置的宽度(本例是4 个时钟)。
在检测到TI000 引脚的上升沿时将TM00 清零(0000H),而在检测到TI000 引脚的下降沿时,TM00 的计数值被捕捉到CR000。当TM00 被清零(0000H)后,TO00 引脚的输出电平被反转,因为TI00 引脚检测到上升沿或者TM00 的值与比较寄存器(CR010)的值相等。
当捕捉/比较控制寄存器00 (CRC00)的第1 位(CRC001)=1 时,TM00 的计数值被捕捉到CR000(在TI000 引脚输入信号的反向沿捕捉),但不产生捕捉中断信号(INTTM000)。然而当检测到TI010 引脚的有效沿时产生INTTM000 中断信号。如果不使用INTTM000 信号,则将其屏蔽。

(4) 清零&启动模式(通过TI000 引脚有效沿输入进入)下的操作
(CR000: 捕捉寄存器, CR010: 捕捉寄存器)

这是一个应用示例:当检测到TI000 引脚的上升沿或下降沿时,捕捉到的计数值存入CR010、将TM00 清零并反转TO00 引脚的输出
在检测到TI010 引脚的脉冲沿时产生中断信号(INTTM000)。如果不使用INTTM000 信号,则将其屏蔽。

这是一个时序示例:当脉冲沿不输入到TI000 引脚时,在检测到TI010 引脚的上升沿或下降沿时,捕捉到的计数值存入CR000 。

这是一个应用示例:对输入到TI000 引脚的信号脉冲宽度进行测量。
通过设置CRC00,在TI000 引脚下降沿(也可以是上升沿)的反向沿捕捉到的计数值存入CR000,而在TI000 引脚下降沿捕捉到的计数值存入CR010。
可以通过下列表达式计算输入脉冲的高电平和低电平宽度。
    高电平宽度= [CR010 的值] –[CR000 的值] [计数时钟周期]
    低电平宽度= [CR000 的值] [计数时钟周期]
如果选择TI000 引脚脉冲的反向沿作为触发,捕捉计数值并存入CR000,则不会产生INTTM000 信号。在产生INTTM010 信号后立即读取CR000 和CR010,测量脉冲宽度。
但如果将预分频器模式寄存器00 (PRM00)的第6 位和第5 位(ES101 和ES100)指示的有效沿输入TI010 引脚,则不会捕捉计数值,但会产生INTTM000 信号。如果要测量TI000 引脚的脉冲宽度,在不使用INTTM000 信号时将其屏蔽。


(e) 16 位定时器计数器00 (TM00)
通过读取TM00,获得计数值。
(f) 16 位捕捉/比较寄存器000 (CR000)
当该寄存器用作比较寄存器并且当其值与TM00 的值相等时,产生中断信号(INTTM000)。但不对TM00 清零。
如果要将该寄存器用作捕捉寄存器,则应选择TI000 或TI010 引脚注输入作为捕捉触发。当检测到捕捉触发的有效沿时,将TM00 的计数值存入CR000。
注   当使用检测TI010 引脚的有效沿时不能使用定时器输出(TO00)。
(g) 16 位捕捉/比较寄存器010 (CR010)
当该寄存器用作比较寄存器并且当其值与TM00 的值相等时,产生中断信号(INTTM010)。但不对TM00 清零。
当该寄存器用作捕捉寄存器,则TI000 引脚输入作为捕捉触发。当检测到捕捉触发的有效沿时,将TM00 的计数值存入CR010。


注   设置TOC00 时必须特别小心。
返回列表