XS128 ECT定时 捕捉Word下载.docx

上传人:b****6 文档编号:19906140 上传时间:2023-01-12 格式:DOCX 页数:19 大小:37.48KB
下载 相关 举报
XS128 ECT定时 捕捉Word下载.docx_第1页
第1页 / 共19页
XS128 ECT定时 捕捉Word下载.docx_第2页
第2页 / 共19页
XS128 ECT定时 捕捉Word下载.docx_第3页
第3页 / 共19页
XS128 ECT定时 捕捉Word下载.docx_第4页
第4页 / 共19页
XS128 ECT定时 捕捉Word下载.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

XS128 ECT定时 捕捉Word下载.docx

《XS128 ECT定时 捕捉Word下载.docx》由会员分享,可在线阅读,更多相关《XS128 ECT定时 捕捉Word下载.docx(19页珍藏版)》请在冰豆网上搜索。

XS128 ECT定时 捕捉Word下载.docx

模数递减计数器

16位递减模数计数器(MDC)可以用作时钟基准,产生周期性的中断请求,也可用于将IC寄存器和脉冲累加器的值锁存到各自的保持寄存器中。

锁存动作可以通过程序设定为周期性的或一次性的。

MDC的时钟频率可通过独立的定标器设定,内部设有定时常数寄存器,可以实现自动重装载,但MDC的常数寄存器与MDC计数器使用相同的地址,加载时通过特殊的时序实现。

每当MDC回0时,将在给定的时间段内控制贮和PAI寄存器的内容向各自的缓冲寄存器传输。

反映了MDC在IC、PAI系统中的作用。

脉冲累加器

脉冲累加器由4个8位的通道PAC0-PAC3组成,可以通过级联形成两个16位通道PACA、PACB,它可以统计输入引脚上出现的有效边沿的数量,也可以统计有效电平出现的累计时间。

各个通道的8位保持寄存器是与4个缓冲IC通道相关联的,它们共享边沿检测与延迟电路。

当IC工作在两种不同的队列方式时,PAC保持寄存器也处于不同的工作状态,在锁存方式下,PCnH的加载依靠MDC计数器或者强制命令实现,而在队列方式下,则依靠IC通道的TCnH读命令。

可见在ECT模块下,IC与PAI的工作联系更加紧密。

此外,脉冲累加器还有饱和记忆功能,当8位的脉冲累加器计数超过$FF后记忆保持,而不回滚到0,这时,计数值$FF意味着计数已经达到或超过255,如不需要,该功能可以关闭。

这可以用来监视某个通道的计数值是否已经达到预定的目标值。

值得注意的是,PACl、PAC0级联后,输入引脚为PT0,而PAC3、PAC2级联后,输入引脚并不是PT2,而是PT7,这样可以与那些无ECT的MCU保持一致性。

S12XS128程序(19)--Timer寄存器说明

1、定时器/计数器系统控制寄存器1(TSCR1)

寄存器偏移量:

$0006

Bit7

Bit6

Bit5

Bit4

Bit3

Bit2

Bit1

Bit0

TEN

TSWAI

TSFRZ

TFFCA

0

可在任何时候读或写。

TSCR1寄存器是定时器模块的总开关,它决定模块是否启动以及在中断等待、BDM方式下的行为,还包括标志的管理方式。

其各位的意义如下:

TEN:

定时器使能位,此外它还控制定时器的时钟信号源。

要使用定时器模块的IC/OC功能,必须将TEN置位。

如果因为某种原因定时器没有使能,脉冲累加器也将得不到ECLK/64时钟,因为ECLK/64是由定时器的分频器产生的,这种情况下,脉冲累加器将不能进行引脚电平持续时间的累加。

0:

定时器/计数器被禁止,有利于降低功耗。

1:

定时器/计数器使能,正常工作。

TSWAI:

等待模式下计时器关闭控制位。

【注意】定时器中断不能用于使MCU退出等待模式。

在中断等待模式下允许MCU继续运行。

当MCU进入中断等待模式时,禁止计时器。

TSFRZ:

在冻结模式下计时器和计数器停止位。

在冻结模式下允许计时器和计数器继续运行。

在冻结模式下禁止计时器和计数器,用于仿真调试。

【注意】TSFRZ不能停止脉冲累加。

TFFCA:

定时器标志快速清除选择位。

定时器标志普通清除方式。

对于TFLGl($0E)中的各位,读输入捕捉寄存器或者写输出比较寄存器会自动清除相应的标志位CnF。

对于TFLG2($0F)中的各位,任何对TCNT寄存器($04、$05)的访问均会清除TOF标志;

任何对PACN3和PACN2寄存器($22,$23)的访问都会清除PAFLG寄存器($21)中的PAOVF和PAIF位。

任何对PACN1和PACN0寄存器($24,$25)的访问都会清除PBFLG寄存器($21)中的PBOVF位。

【说明】这种方式的好处是削减了另外清除标志位的软件开销。

此外,必须特别注意避免对标志位的意外清除。

2、计时器系统控制寄存器2(TSCR2)

$000D

TOI

TCRE

PR2

PR1

PR0

TOI:

定时器/计时器溢出中断使能。

中断被禁止。

当TOF标志被置位时发出硬件中断请求。

【注意】TOF标志位在TFLG中

TCRE:

定时器/计数器复位使能。

该位在通道7成功输出比较之后允许时钟计数器复位。

该操作模式类似于递增型计数器。

计数器复位禁止,计数器自由计数。

通道7成功输出比较后计数器将被复位。

【说明】如果TC7=$0000并且TCRE=1,TCNT将继续保持$0000。

如果TC7=$FFFF并且TCRE=1,当TCNT从$FFFF到$0000之间被复位后TOF将永远不被置位。

PR2,PR1,PR0:

计数器预分频选择。

这三位所决定的分频因子如下表所示。

分频因子选择

PR2

PR1

PR0

PrescaleFactor

1

2

4

8

16

32

64

128

【说明】新设定的分频因子不会立即起作用,直到下一个触发沿到来那里所有预分频计数器值均为零。

3、控制寄存器(TCTLl-TCTL4)

TCTLl-TCTL4分为两组,分别对IC和OC电路进行设定,每组16个二进制位,每两个二进制位管理一个通道。

其中TCTLl、TCTL2设定各个OC通道匹配时的动作,包括切断OC与输出引脚的联系,而TCTL3、TCTL4设定IC响应引脚的何种动作,包括禁止IC的响应。

TCTL1寄存器偏移量:

$0008

OM7

OL7

OM6

OL6

OM5

OL5

OM4

OL4

TCTL2寄存器偏移量:

$0009

OM3

OL3

OM2

OL2

OM1

OL1

OM0

OL0

OMn、OLn分别设定输出方式和输出电平,这8对控制位(OM7、OL7---OMO、OL0)编码后用于指定通道比较成功后的输出动作。

如果每对当中至少有一个为1,对应引脚就固定为相应通道的输出,而与DDRT中的对应位无关。

当二者同时为0时,OC与输出引脚断开。

输出比较动作设置

OMn

OLn

动作

定时器与引脚断开

OCn输出翻转

OCn输出清零

OCn输出置1

TCTL3寄存器偏移量:

$000A

EDG7B

EDG7A

EDG6B

EDG6A

EDG5B

EDG5A

EDG4B

EDG4A

TCTL4寄存器偏移量:

$000B

EDG3B

EDG3A

EDG2B

EDG2A

EDG1B

EDG1A

EDG0B

EDG0A

各个控制位的作用如下:

EDGnB、EDGnA输入捕捉边沿控制位,这8对控制位(EDG7B、EDG7A—EDG0B、EDG0A)对输入捕捉的边沿检测电路进行设置。

当二者同时为0时,IC与输入引脚断开。

输入捕捉边沿检测电路设置

EDGnB

EDGnA

边沿检测电路设置

禁止捕捉

捕捉上升沿

捕捉下降沿

上升沿下降沿均捕捉

【注意】为了使OMn、OLn指定的引脚动作有效,OC7M中的对应位必须清0。

若要使用16位脉冲累加器A和B,并使它们分别独立于IC/OC7和IC/OC0,必须设置对应的IOSn:

1、OMn=0、OLn=0,同时寄存器OC7M中的OC7M7、OC7M0位必须清0。

4、主定时器中断标志寄存器(TFLG1、TFLG2)

5、TFLG1寄存器偏移量:

$000E

C7F

C6F

C5F

C4F

C3F

C2F

C1F

C0F

TFLG2寄存器偏移量:

$000F

TOF

所示的TFLG1、TFLG2为中断标志寄存器,其中TFLG1对应8个IC/OC通道,当某CnF=1时说明对应的IC/OC通道有动作,表明该通道有中断事件发生。

TFLG2只有一个标志位TOF,作为核心计数器的中断请求标志。

当TOF=1时说明核心计数器溢出。

要清除某个标志位,只需向该位写1,向某位写0不影响该位的状态。

当TSCR中的TFFCA位置位时,读IC通道或写OC通道($10-$1F)将自动清除该通道标志CnF,对TCNT的任何访问将自动清除TFLG2。

CnF:

IC/OC通道中断请求标志。

上次清除标志以来,IC/OC通道没有有效动作。

IC/OC通道已经出现动作。

将寄存器ICSYS($2B)中的TFMOD位和ICOVW寄存器($2A)联合使用,可以使定时器在两次捕捉后才产生中断,而不是每次捕捉均产生动作。

两次捕捉结果分别在捕捉和保持寄存器里面。

TOF:

定时器溢出标志,当16位自由定时器从$FFFF回滚到$0000时,该位置位。

将$80写入到TFLG2将自动清除该位(写1清零)。

详见前面关于TMSK2中TCRE控制位的解释。

5、计时器中断使能寄存器(TIE)

寄存器偏移量:

$000C

C7I

C6I

C5I

C4I

C3I

C2I

C1I

C0I

TIE寄存器中的位与状态寄存器TFLG1中的标志位相对应。

如果将TIE中的某位清0,相应的标志位就不能引起硬件中断。

如果被置1,相应的标志位就可以引起中断。

C7I-C0I:

输入捕捉/输出比较“x”中断使能。

6、IC/OC选择寄存器(TIOS)

$0000

IOS7

IOS6

IOS5

IOS4

IOS3

IOS2

IOS1

IOS0

TIOS寄存器用于指定各个通道的功能,即工作于IC还是OC方式。

当某位IOSn=0时,对应的通道n为输入捕捉(1C)通道,否则当IOSn=1时,通道n为输出比较(OC)通道。

其中的各位可以在任何时候写入或读出。

【说明】上电后该寄存器默认为$00,TSCR中的TEN默认也为0,这时所有通道处于通用I/O方式,将TEN置位后各个通道进入IC方式,要将某些通道设置成OC方式,必须对TIOS进行设置,即将有关位置1。

设置成OC的通道其引脚具有降功率驱动功能,设置成IC的通道具有内部上拉功能,但上电后均处于关闭状态,可以根据需要启用。

7、IC/OC寄存器(TC0-TC7)

每个IC或OC通道都设置有一个16位的寄存器,对于IC(输入捕捉)通道,当通道的边沿探测器检测到由EDGnA、EDGnB指定的条件时,将自由定时器的值捕捉到寄存器TCn,随后程序可以读取和处理;

对于OC(输出比较)通道,程序将预定的时刻写入到TCn,当自由定时器的值与其相等时,触发由OMn、OLn所指定的输出动作。

定时器模块共有TC7-TC0等8个16位IC/OC寄存器。

TC0寄存器偏移量:

$0010-$0011

Bit15

Bit14

Bit13

Bit12

Bit11

Bit10

Bit9

Bit8

TC1寄存器偏移量:

$0012-$0013

TC2寄存器偏移量:

$0014-$0015

TC3寄存器偏移量:

$0016-$0017

TC4寄存器偏移量:

$0018-$0019

TC5寄存器偏移量:

$001A-$001B

TC6寄存器偏移量:

$001C-$001D

TC7寄存器偏移量:

$001E-$001F

8、定时器核心寄存器(TCNT)

$0004-$0005

TCNT是递增计数器,它不停地对内部时钟信号计数、程序可随时读取,但在普通模式下禁止写入。

TCNT应按字访问,分别访问高、低字节可能得到错误的结果。

【说明】在特殊模式下,TCNT可写,但因为写操作与预分频器时钟不同步,TCNT寄存器写入后,其第一个周期可能是一个不同的值。

9、输出比较通道7屏蔽寄存器(OC7M)

寄存器偏移量$0002

OC7M7

OC7M6

OC7M5

OC7M4

OC7M3

OC7M2

OC7M1

OC7M0

前面已经说明,OC7具有特殊地位,它匹配时可以直接改变其他7个输出引脚的状态,并覆盖各个引脚原来的匹配动作结果,寄存器OC7M决定哪些通道将处于OC7的管理之下。

OC7M中的各位与PORTT口寄存器的各位一一对应。

当通过TIOS将某个通道设定为输出比较时,将OC7M中的相应位置1,对应的引脚就是输出状态,与DDR中的对应位的状态无关。

但OC7Mn并不改变DDR相应位的状态。

OC7M具有更高的优先级,它优于通过TCTL1和TCTL2寄存器中的OMn和OLn设定的引脚动作,若OC7M中某个位置1,就会阻止相应引脚上由OM和OL设定的动作。

10、输出比较通道7数据寄存器(OC7D)

$0003

OC7D7

OC7D6

OC7D5

OC7D4

OC7D3

OC7D2

OC7D1

OC7D0

OC7M对于其他OC输出引脚的管理限于将某个二进制值送到对应引脚,这个值保存在寄存器OC7D中的对应位中。

当OC7匹配成功后,若某个OC7Mn=1,则内部逻辑将OC7Dn送到对应引脚。

OC7D中的各位与PORTT口寄存器的各位一一对应。

当通道7比较成功时,如果OC7M中的某个位为1,OC7D中的对应位将被输出到PORTT的对应引脚。

当OC7M中的某个位为1时,通道7匹配成功的动作如果与通道6-0的动作发生在同一个周期,前者将覆盖后者。

因此各个通道的动作将依赖于OC7D中各个位的设置。

写S12XS128程序(24)--Timer模块应用实例1

输入捕捉(IC)编程步骤:

初始化函数

TIOS---选择工作方式为IC

TCTLx---设置对应位输入捕捉的方式(x=3、4,高位是3,低位是4)

TSCRx---控制寄存器设置,包括工作使能、确定工作方式(x=1)、中断允许、预分频

TIE---中断使能

中断函数

清除标志位---TFLG1

处理函数

【例程3】

//---------------------------------------------------------------------------//

//功能说明:

利用PP3通道产生40Hz,占空比为50%的方波

//利用PT0采集方波的个数,并在PB口显示

//程序设计:

电子设计吧

//设计时间:

2010.01.13

#include<

hidef.h>

/*commondefinesandmacros*/

mc9s12dg128.h>

/*derivativeinformation*/

#pragmaLINK_INFODERIVATIVE"

mc9s12dg128b"

unsignedintInput_Nu

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 管理学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1