9s12系列增强型捕捉定时器模块

上传人:xt****7 文档编号:181425510 上传时间:2023-01-13 格式:PPT 页数:39 大小:235.50KB
收藏 版权申诉 举报 下载
9s12系列增强型捕捉定时器模块_第1页
第1页 / 共39页
9s12系列增强型捕捉定时器模块_第2页
第2页 / 共39页
9s12系列增强型捕捉定时器模块_第3页
第3页 / 共39页
资源描述:

《9s12系列增强型捕捉定时器模块》由会员分享,可在线阅读,更多相关《9s12系列增强型捕捉定时器模块(39页珍藏版)》请在装配图网上搜索。

1、第七章 IO接口及增强型捕捉定时器模块n MC9S12MC9S12系列单片机增强型定时器模块是在标准定时系列单片机增强型定时器模块是在标准定时器模块的基础上添加了新的功能。器模块的基础上添加了新的功能。n 定时器的核心是一个定时器的核心是一个1616位的可编程计数器位的可编程计数器,计数的,计数的频率可以通过分频来调整。频率可以通过分频来调整。n 用途很多用途很多普通定时器的工作,例如脉冲计数、定时等普通定时器的工作,例如脉冲计数、定时等可以用来测量输入的脉冲宽度可以用来测量输入的脉冲宽度产生我们需要的脉冲波形。产生我们需要的脉冲波形。增强型定时器增强型定时器ECTECT模块模块第七章 IO接

2、口及增强型捕捉定时器模块n ECTECT模块的组成:模块的组成:1 1个预分频器个预分频器 1 1个个1616位自由运行计数器位自由运行计数器 8 8个个1616位位IC/OCIC/OC通道通道 2 2个个1616位(位(4 4个个8 8位)脉冲位)脉冲累加器累加器 1 1个个1616位模数递减计数器位模数递减计数器第七章 IO接口及增强型捕捉定时器模块n 输入捕捉功能是用来监测外部的事件和输入信号。输入捕捉功能是用来监测外部的事件和输入信号。n 当外部事件发生或信号发生变化时,在指定的输入捕捉引脚当外部事件发生或信号发生变化时,在指定的输入捕捉引脚上发生一个指定的沿跳变(可以指定该跳变是上升

3、沿还是下上发生一个指定的沿跳变(可以指定该跳变是上升沿还是下降沿)。定时器捕捉到特定的沿跳变后,降沿)。定时器捕捉到特定的沿跳变后,把计数寄存器当前把计数寄存器当前的值锁存到通道寄存器。的值锁存到通道寄存器。n 如果输入捕捉控制寄存器中设定允许输入捕捉中断,系统会如果输入捕捉控制寄存器中设定允许输入捕捉中断,系统会产生一次输入捕捉中断,产生一次输入捕捉中断,利用中断处理程序可以得到事件发利用中断处理程序可以得到事件发生的时刻或信号发生变化的时刻。生的时刻或信号发生变化的时刻。触发沿选择触发沿选择触发事件触发事件16位捕捉锁存器位捕捉锁存器16位计数器位计数器计数器时钟计数器时钟输入捕捉输入捕捉

4、第七章 IO接口及增强型捕捉定时器模块n 在特定的时刻在管脚上输出特定电平,用来控制外电路工作。在特定的时刻在管脚上输出特定电平,用来控制外电路工作。原理是:原理是:输出比较寄存器输出比较寄存器的值和计数器的值每隔的值和计数器的值每隔4 4个总线周期个总线周期比较一次,当两个值相等的时候,会在该通道的引脚上比较一次,当两个值相等的时候,会在该通道的引脚上输出预输出预先规定的电平先规定的电平。如果输出比较中断允许,还会产生一个硬件的定时中断。如果输出比较中断允许,还会产生一个硬件的定时中断。输出比较最简单和最常用的功能就是产生一定间隔的脉冲输出比较最简单和最常用的功能就是产生一定间隔的脉冲。16

5、16位输出比较寄存器位输出比较寄存器比较器比较器1616位计数器位计数器计数器时钟计数器时钟输出比较输出比较第七章 IO接口及增强型捕捉定时器模块输入捕捉/输出比较通道n 有8个输入捕捉输出比较通道。共有8个外部引脚,分别为IOC0IOC7,与PORTT复用。n 通过选择TIOS寄存器的IOSx位可以选择是输出比较还是输入捕捉。n 对于输入捕捉:带缓冲的输入捕捉通道不带缓冲的输入捕捉通道第七章 IO接口及增强型捕捉定时器模块n 不带缓冲的输入捕捉通道 8个输入捕捉,其中4个(PT4PT7)带有一个捕捉寄存器用来记录管脚上电平变化时自由计数器的锁存值。捕捉寄存器TCx 当输入覆盖控制寄存器(IC

6、OVW)的NOVWx位清0时,每发生一次输入捕捉,新的计数器的值就会覆盖原来的输入捕捉寄存器的内容;当该位置1时,除非输入捕捉寄存器为空,否则新的值不能写入(使输入捕捉寄存器为空的方法是读取该寄存器)。这样就避免了新的计数值覆盖旧的计数值。ICOVW复位时为0 x00。第七章 IO接口及增强型捕捉定时器模块n 带缓冲的输入捕捉通道带缓冲的输入捕捉通道PT0PT3PT0PT3是带缓冲的输入捕捉通道。是带缓冲的输入捕捉通道。捕捉寄存器捕捉寄存器TCxTCx 保持寄存器保持寄存器TCxH TCxH。可以在不产生中断的情况下,连续记录两次自由可以在不产生中断的情况下,连续记录两次自由计数器的值。计数器

7、的值。入口设置了延迟计数器入口设置了延迟计数器 用来提高抗干扰能力用来提高抗干扰能力 第七章 IO接口及增强型捕捉定时器模块锁存方式:锁存方式:每个有效的引脚事件只将自由定时器的值放入捕每个有效的引脚事件只将自由定时器的值放入捕捉寄存器捉寄存器 TCxTCx,而而 TCx TCx 到保持寄存器到保持寄存器 TCxH TCxH 的传的传送必须依赖强制锁存命令才能实现送必须依赖强制锁存命令才能实现当模数计数器减为当模数计数器减为“0”0”向模数计数器写入向模数计数器写入“$0000”$0000”写强制锁存位写强制锁存位ICLATICLAT(输入控制系统控制寄存器(输入控制系统控制寄存器ICSYSI

8、CSYS)输入捕捉寄存器的值将锁存到相应通道的保持寄输入捕捉寄存器的值将锁存到相应通道的保持寄存器中,并将输入捕捉寄存器的值清零。存器中,并将输入捕捉寄存器的值清零。两种工作模式两种工作模式:(:(TCx 到保持寄存器到保持寄存器 TCxH)第七章 IO接口及增强型捕捉定时器模块n队列方式队列方式TCx TCx 与与 TCxH TCxH 形成了一个类似先进先出的形成了一个类似先进先出的队列,每个捕捉结果从队列,每个捕捉结果从 TCx TCx 进入,然进入,然 后随后随着下一个捕捉结果的到来移入着下一个捕捉结果的到来移入 TCxHTCxH。程序可以从程序可以从 TCxH TCxH 取得结果,也可

9、以直接取得结果,也可以直接从从 TCx TCx 取得捕捉结果。取得捕捉结果。第七章 IO接口及增强型捕捉定时器模块n 4 个 8 位的通道 PAC0-PAC3 组成n 可以通过级联形成两个 16 位通道 PACA、PACBn 通过检测相应管脚上的有效边缘来记录脉冲的个数。n 各通道的 8 位累加器与 4 个缓冲 IC 通道相关联的,它们共享边沿检测与延迟电路。脉冲累加器脉冲累加器第七章 IO接口及增强型捕捉定时器模块n 两种工作模式两种工作模式 锁存方式:锁存方式:通过锁存命令,将通过锁存命令,将脉冲累加计数器脉冲累加计数器的值锁的值锁存到相应通道的存到相应通道的保持寄存器保持寄存器中中 队列

10、方式队列方式 当读取某通道保持寄存器的值时,相应脉当读取某通道保持寄存器的值时,相应脉冲累加器的值将被写入保持寄存器。冲累加器的值将被写入保持寄存器。第七章 IO接口及增强型捕捉定时器模块n16 位递减模数计数器(MDC)可以用作时钟基准,产生周期性的中断请求。n也可用于将 IC 寄存器和脉冲累加器的值锁存到各自的保持寄存器中。模数递减计数器模数递减计数器第七章 IO接口及增强型捕捉定时器模块n 模数递减计数器(MCCNT)n 模数递减标志寄存器(MCFLG)n 模数递减控制寄存器(MCCTL)n 模数计数器由初值递减,递减到0时,会产生相应的中断。n 递减频率由总线时钟经分频得到。n 初值可

11、以由用户写入第七章 IO接口及增强型捕捉定时器模块n 在模数模式允许后(MODMC=1),向模数递减计数器的写操作会更新预置数的值,模数计数器递减到0时,就会装载最新的预置数,n 装载的操作也可以由置MCCTL寄存器的FLMC位为1来强制执行。n 总定时时间=预置数总线周期中断次数第七章 IO接口及增强型捕捉定时器模块n 在中断程序中,需要清除相应的中断标志位(MCFLG),并将中断次数减1,当中断次数减为0时,一次延时就完成了。第七章 IO接口及增强型捕捉定时器模块第七章 IO接口及增强型捕捉定时器模块三个例子三个例子举三个例子讲述本节内容 流水灯显示 使用输入捕捉功能,对外来脉冲进行计数

12、使用输出比较功能,输出一个具有一定宽度的高电平脉冲第七章 IO接口及增强型捕捉定时器模块ECTECT计数寄存器(计数寄存器(TCNT TCNT)nTCNT为自由计数器的计数值,本例通过读取它的值实现延时。n这是一个16位的加法计数器,最大值为65535。n任意时刻可读,正常模式下写操作无效。第七章 IO接口及增强型捕捉定时器模块ECTECT控制寄存器控制寄存器1 1(TSCR1TSCR1)n必须设置TSCR1才可以使主定时器工作,需要在ECT模块初始化时就设置好。TEN=1:主定时器使能。0=主定时器禁止,进入低功耗状态。TSWAI=0:等待模式时主定时器继续工作,方便调试。0=停止工作。TS

13、FRZ=0:冻结模式时主定时器继续工作。0=停止工作。TFFCA=0:自动清除标志位。1=手动清除。本例设置TSCR1=0 x80。第七章 IO接口及增强型捕捉定时器模块ECTECT控制寄存器二(控制寄存器二(TSCR2TSCR2)nTOI:禁止定时器溢出中断。1=允许。nTCRE:定时计数器复位允许。0=禁止复位,计数器自由计数。1=允许复位。进行完一次输出比较时,可以使定时计数器复位nPR2、PR1、PR0:预分频因子选择第七章 IO接口及增强型捕捉定时器模块void TimerOverflow(void)unsigned char i=1,j=0 x80;while(i!=0)&(j!=

14、0)PORTA=(i|j);i=1;while(TCNT!=0 x0000);/延时while(TCNT=0 x0000);void main(void)EnableInterrupts;TSCR1=0 x80;/定时器使能TSCR2=0 x07;/分频系数为128DDRA=0 xff;PORTA=0 xff;for(;)TimerOverflow();流水灯的显示流水灯的显示PORTA输出调用函数设置控制寄存器1设置控制寄存器2延时控制第七章 IO接口及增强型捕捉定时器模块 while(TCNT!=0 x0000);while(TCNT=0 x0000);这两句的含义是:TCNT开始计数后值

15、不为0,等待直到TCNT溢出返回0,然后再等到TCNT不为0。为什么要弄两个while?第七章 IO接口及增强型捕捉定时器模块例二:输入捕捉例二:输入捕捉n 利用输入捕捉0通道对外来的方波信号进行捕捉,采用中断的形式。中断发生后,读取捕捉后的计数值,并通过PORTB口使LED灯点亮以指示中断成功。n 通道0设置为输入捕捉,采用双沿触发(上下沿均触发),IC0开中断,可以进入中断服务程序。方波信号由PORTA_BIT6产生,PORTA_BIT6和IOC0硬件连接。第七章 IO接口及增强型捕捉定时器模块输入控制系统寄存器输入控制系统寄存器-ICSYS-ICSYSnSHxy=0:正常操作。1=x通道

16、和y通道将产生一样的输入动作,x通道的设置同样适用于y。nTFMOD=0:当出现有效的输入捕获事件,TFLG1中的对应中断标志位CxF就置1。1=队列模式时才使用。nPACMX=0:8位脉冲累加器溢出后自动回0。1=不自动回0,停留在0 xFF。脉冲累加器对IC通道捕获的有效边沿数量进行计数。第七章 IO接口及增强型捕捉定时器模块输入控制系统寄存器输入控制系统寄存器-ICSYS-ICSYSnBUFEN=1:使用输入捕获缓冲区。0=不使用。(输入捕捉和脉冲累加器的保持寄存器)nLATQ=0:输入捕获队列模式使能。产生一次成功的输入捕获时,IC通道寄存器中保留的计数值会被送到保持器中,然后IC寄存

17、器会接收新的计数值。1=锁存模式使能。nICSYS=0 x02;/IC缓冲使能第七章 IO接口及增强型捕捉定时器模块TFLG1TFLG1:主定时器中断寄存器:主定时器中断寄存器1 1 BIT76543210RC7FC6FC5FC4FC3FC2FC1FC0FWRESET00000000nTFLG1指示了中断发生在哪个通道,需要对相应位清零时,可以对它进行置1操作。C7F-C0F:IC/OC的中断标志。n当TSCR寄存器中的TFFCA位被置位时,对于输入捕捉和输出比较通道的读写操作,将清除对应通道的CxF位。第七章 IO接口及增强型捕捉定时器模块定时器输入捕捉和输出比较寄存器定时器输入捕捉和输出比

18、较寄存器nTC0-TC7寄存器:用来锁存自由计数器的值,当得到有效的边沿触发时,我们可以通过读这些寄存器来获得输入捕捉计数值;通过写这些寄存器来设置输出比较的计数值。n任意时刻可读。在输出比较模式任何时刻可写。在输入捕捉模式对寄存器的写操作没有意义。当寄存器复位后,寄存器值等于$0000。第七章 IO接口及增强型捕捉定时器模块IC/OCIC/OC通道选择寄存器通道选择寄存器-TIOS-TIOSIOSx:1=通道x为输出比较;0=通道x为输入捕获。第七章 IO接口及增强型捕捉定时器模块控制寄存器控制寄存器3/4 TCTL3/43/4 TCTL3/4EDGnA/B:输入捕捉边沿控制。本例设置0 x

19、03(EDG0A=1,EDG0B=1)。即IC0通道采用上升,下降沿都触发。n代表通道序号。第七章 IO接口及增强型捕捉定时器模块定时器中断使能寄存器定时器中断使能寄存器-TIE-TIECxI:1=第x个通道中断允许;0=第x个通道中断禁止。第七章 IO接口及增强型捕捉定时器模块例二:输入捕捉例二:输入捕捉IC0的初始化:的初始化:void ic_init(void)TSCR1=0 x90;/主定时器使能,对TCNT访问即可清除标志 TSCR2=0 x07;/分频因子=128 ICSYS=0 x02;/IC缓冲使能(保持寄存器)TIOS=0;/通道设置为输入捕获TCTL4=0 xff;/采用上

20、升、下降沿触发 TIE=0b00000001;/通道0开中断第七章 IO接口及增强型捕捉定时器模块例二:输入捕捉例二:输入捕捉初始化好后,需要在main函数中调用初始化函数ic_init()。以下是在main函数中,如何使用PORTA_BIT6来产生一个方波信号。DDRA=0 xff;/设置PORTA的方向寄存器,为输出PORTA=0 x00;/PORTA的输出初始化为低电平DDRB=0 xff;/PORTB设置为LED灯的控制信号PORTB=0 x00;/LED全灭for(;)for(i=0;i6000;i+)PORTA_BIT6=1;/循环中设置信号为高电平for(i=0;i6000;i+

21、)PORTA_BIT6=0;/循环中设置信号为低电平,产生方波 第七章 IO接口及增强型捕捉定时器模块例二:输入捕捉例二:输入捕捉方波信号已经成功得产生了,下面是中断服务程序:#pragma CODE_SEG NON_BANKED/必须有这句void interrupt 8 ic0_int(void)TFLG1_C0F=1;/中断标志清除ic4=TC0;/通过读TC0寄存器来响应中断,ic4、ic40为用户定义的变量dic4=ic4-ic40;ic40=ic4;PORTB=0 x55;/用LED灯来指示已经进入了中断/*以下放置其他代码*/第七章 IO接口及增强型捕捉定时器模块强制输出比较寄存

22、器强制输出比较寄存器-CFORC-CFORCFOCxx通道强制输出比较在相应的寄存器位写入强制输出比较命令,会立即使相应的通道处于输出比较状态。第七章 IO接口及增强型捕捉定时器模块定时器控制寄存器定时器控制寄存器1/2TCTL1/21/2TCTL1/2OMn:输出模式 OLn:输出等级这8 对控制位是用来指定输出比较的输出动作的,当OMn 和OLn 二者任意一个为1 时,OCn 对应的端口会有相应的输出。如果需要用OMn 和OLn 来控制相应定时器端口的输出,则OC7M 中的对应位必须清零。第七章 IO接口及增强型捕捉定时器模块void oc_init()TSCR2=0 x07;128分频,

23、定时器溢出中断禁止 TIOS=0 x01;通道0输出比较 TIE=0 x01;中断使能 TCTL2_OM0=1;输出低电平 TCTL2_OL0=0;TSCR1=0 x90;第七章 IO接口及增强型捕捉定时器模块void main(void)EnableInterrupts;DDRB=0 x00;PORTB=0 xff;DDRM=0 xff;PTM=0 xff;oc_init();for(;)第七章 IO接口及增强型捕捉定时器模块#pragma CODE_SEG NON_BANKEDvoid interrupt 8 oc0_int(void)TCTL2_OM0=1;TCTL2_OL0=!TCTL2_OL0;PTM_PTM1=PORTB_BIT1;TC0=TCNT+4000;第七章 IO接口及增强型捕捉定时器模块谢谢!

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!