- 1、本文档共13页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
5.4定时器
;USART、定时器和ADC这样的片内外设同样也需要I/O口实现其功能。对于USART、定时器具有两个可以选择的位置对应它们的I/O引脚.I/O引脚被选择实现片内外设I/O功能,需要设置对应的PxSEL位为1。;CC2530共有四个定时器T1、T2、T3、T4,定时器用于范围广泛的控制和测量应用,可用的五个通道的正计数/倒计数模式可以实现诸如电机控制之类的应用。
T1为16位定时/计数器,支持输入采样、输出比较和PWM功能。T1有五个独立的输入采样/输出比较通道,每一个通道对应一个I/O口。T2为MAC定时器,T3、T4为8位定时/计数器,支持输出比较和PWM功能。;五个捕获/比较通道
上升沿、下降沿或任何边沿的输入捕获
设置、清除或切换输出比较
自由运行、模或正计数/倒计数操作
可被1,8,32或128整除的时钟分频器
在每个捕获/比较和最终计数上生成中断请求
DMA触发功能;T1CNTH –定时器1计数高位
T1CNTL –定时器1计数低位
T1CTL –定时器1控制
T1STAT –定时器1状态;;定时器1操作;定时器1操作;定时器1包括一个 16位计数器,在每个活动时钟边沿递增或递减。活动时钟边沿周期由寄存器位CLKCON.TICKSPD定义,它设置全球系统时钟的划分,提供了从0.25MHz到32MHz的不同的时钟标记频率(可以使用32MHzXOSC作为时钟源)。这在定时器1中由T1CTL.DIV设置的分频器值进一步划分。这个分频器值可以从1、8、32或128。因此当32MHz晶振用作系统时钟源时,定时器1可以使用的最低时钟频率是1953.125Hz,最高是32MHz。当16MHzRC振荡器用作系统时钟源时,定时器1可以使用的最高时钟频率是16MHz。;读取16位的计数器值:T1CNTH和T1CNTL,分别包含在高位字节和低位字节中。当读取T1CNTL时,计数器的高位字节在那时被缓冲到T1CNTH,以便高位字节可以从T1CNTH中读出。因此T1CNTL必须在读取T1CNTH之前首先读取。对T1CNTL寄存器的所有写入访问将复位16位计数器。
当达到最终计数值(溢出)时,计数器产生一个中断请求。可以用T1CTL控制寄存器设置启动并停止该计数器。当一个不是00值的写入到T1CTL.MODE时,计数器开始运行。如果00写入到T1CTL.MODE,计数器停止在它现在的值上。;定时??3和定时器4的所有定时器功能都是基于8位计数器建立的,所以定时器3和定时器4最大计数值要远远小于定时器1,常用于较短时间间隔的定时。定时器3和定时器4各有0、1两个通道,功能较定时器1要弱。计数器在每个时钟边沿递增或递减。活动时钟边沿的周期由寄存器位CLKCONCMD.TICKSPD[2:0]定义,由TxCTL.DIV[2:0](其中x指的是定时器号码,3或4)设置的分频器值进一步划分。计数器可以作为一个自由运行计数器,倒计数器,模计数器或正/倒计数器运行。
可以通过寄存器TxCNT读取8位计数器的值,其中x指的是定时器号码:3或4。计数器开始和停止是通过设置TxCTL控制寄存器的值实现的。当TxCTL.START写入1时,计数器开始。当TxCTL.START写入0时,计数器停留在它的当前值。;实验目的:编程实现t1blink.c定时器1控制LED,掌握定时器计数器的使用方法。
实验现象:led1大约5秒闪烁一次
程序分析
(1)在主函数中,程序首先开T1的溢出中断,然后设置T1CTL,使用T1处于8分频的自由模式。所以T1的计数器每8/(32*106)秒值增加1,在自由模式下T1计数器计数到0xFFFF发生溢出中断,大约0.16秒。
(2)在中断处理函数中,每300次中断led1闪烁一次。;程序流程图
文档评论(0)