时间模块TIM.docxVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
时间模块TIM

TIM1输入捕捉TIM中的功能比较多,有输入捕捉、输出比较,还有脉冲累加器。这里主要记一下输入捕捉和输出比较。输入捕捉这个功能很有用,他不仅可以捕捉外界事件的发生(这个功能和51中的外部中断差不多),还可以捕捉外界事件发生的时间。捕捉外界时间这个功能可以运用到驱动超声波测距中去。IOC0~IOC7是输入捕捉\输出比较的外部针脚。当IOSx=0时(IOSx=1时为输出比较),则将相应的通道配置为输入捕捉了。当输入捕捉检测到有上升沿或下降沿时,就会把那时寄存器的值锁存到TCx中,这样就可以通过查询TCx来确定事件发生的时间了。如果输入捕捉控制寄存器TIE(CxI=1)中允许输入捕捉中断,则捕捉到事件时,系统会产生一次中断。接下来依次说明一下相关的寄存器设置:TSCR1:TEN是定时器允许位。TEN=1时,允许定时器工作,TEN=0时,禁止定时器工作。其余不常用,设为0即可。?TSCR2:TOI是定时器溢出中断允许位。这个在输入捕捉中没用到,设为0即可。TCRE是定时器计数寄存器复位允许位。用在输出比较中,允许输出比较寄存器7的事件来复位定时器计数寄存器。这里设为0即可。PR2~PR0是定时器分频因子选择位。不同的组合可以设定不同的定时器时钟:?TIOS是输入捕捉和输出比较选择寄存器,在这里设定IOC0~IOC7是用于输入捕捉还是用于输出比较。里面的8位对应着IOC0~IOC7八个通道,相应位位1,则设为输出比较。相应位设为0,则为输入捕捉。?TCTL3和TCTL4是用来设定输入捕捉极性的寄存器,在这里可以设为上升沿、下降沿、上升沿或下降沿触发输入捕捉。其中EDGxB和EDGxA一起来设相应通道输入捕捉极性,对应的功能如下:(0 0)为禁止输入捕捉。(0 1)为上升沿捕捉(1 0)为下降沿捕捉(1 1)为上升沿或下降沿捕捉?TIE是输入捕捉或输出比较中断允许位。这里的每一位是和TIOS上的位一一对应的。相应置1时,则捕捉到事件时,则系统会产生中断。相应位设为0时,则不能。?TFLG1是输入捕捉或输出比较中断标位寄存器。当发生输入捕捉或输出比较事件时,相应位置1。向该位写1,可以清空该标志位。?通道寄存器TC0~TC7用于锁存发生捕捉事件时自由运行的计数器的计数值。通过查询TC0~TC7相应的位,可以确定捕捉事件发生的时刻。?与输入捕捉相关的寄存器还有:ICOVW:输入控制修改寄存器ICSYS:输入控制系统控制寄存器DLYCT:延迟计数控制寄存器(可以自动处理窄脉冲干扰)这些不常,可以不管接下来按照上面的寄存器设置好相应的功能,程序就出来了:?void ECT0_INIT()???????//输入捕捉通道0初始化函数{?TSCR2=0X06;???????????//关闭溢出中断且64分频?TIOS_IOS0=0;??????????//定通道0为输入捕捉,1为输出比较?TCTL4=0X01;?????????????//上升沿捕捉??0x02为下降沿捕捉?TIE_C0I=1;???????????????//通道0中断使能?TSCR1=0X80;??????//开启总定时器中断?TFLG1_C0F=1;???//标志位清零}????中断程序:#pragma CODE_SEG __NEAR_SEG NON_BANKED??//分配内存空间void interrupt 8 timer_onput() ???//输入捕捉通道0的中断向量为8{???TFLG1_C0F=1;???//标志位清零???asmsei;??????//关总中断???// PORTB=~PORTB;???PORTB=~(17);???delay_us(1);???PORTB|=(17);??????asm cli;???//开总中断}???TIM2?????????????输出比较XS128的定时器模块中的输入捕捉和输出比较共用同一组管脚。可以通过设置TIOS寄存器来选择。我觉得输出比较的原理和PWM波的产生原理差不多,都是通过计数器的数值和某一寄存器里的值比较产生输出的高低电平变化。在输出比较中,当计数器的值与某一输出比较通道的TCx(TC0~TC7)的值相等时,该通道上引脚会输出高电平、低电平,或是对引脚上的电平进行翻转。这时标志位CxF会置位,如果开通中断的话(TIE中的CxI=1),系统还会产生一个中断。?????????? ?输出比较用到的寄存器好多都是和输入捕捉的一样,现在按照输出比较的程序需要再过一遍。?????????? ?定时器系统控制寄存器TSCR1:设置定时器正常工作.定时器系统控制寄存器TSCR2:设置定时器溢出中断允许,和定时器时钟分频设置??????????? ?定时器计数寄存器TCNT:这是个16位寄存器,在一般情况下是不可以写的。输入

文档评论(0)

jgx3536 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:6111134150000003

1亿VIP精品文档

相关文档