msp430课件(三)

上传人:小** 文档编号:89361869 上传时间:2019-05-24 格式:PPT 页数:70 大小:2.23MB
返回 下载 相关 举报
msp430课件(三)_第1页
第1页 / 共70页
msp430课件(三)_第2页
第2页 / 共70页
msp430课件(三)_第3页
第3页 / 共70页
msp430课件(三)_第4页
第4页 / 共70页
msp430课件(三)_第5页
第5页 / 共70页
点击查看更多>>
资源描述

《msp430课件(三)》由会员分享,可在线阅读,更多相关《msp430课件(三)(70页珍藏版)》请在金锄头文库上搜索。

1、MSP430系列超低功耗16位单片机原理与应用,定时器,看门狗定时器 基本定时器 定时器A 定时器B,写:5AH 读:69H,WDTCNT不能直接通过软件存取,必须通过看门狗定时器的控制寄存器WDTCTL来控制,看门狗定时器,启、停控制,看门狗模式 定时器模式,看门狗定时器应用举例,# include void main(void) WDTCTL = WDT_MDLY_32; / 定时周期为32ms IE1 |= WDTIE; / 使能WDT中断 P1DIR |= 0x01; / P1.0输出 _EINT(); / 系统中断允许 for (;) _BIS_SR(CPUOFF); / 进入 LP

2、M0 _NOP(); / 看门狗中断服务子程序 #pragma vector= WDT_VECTOR _interrupt void watchdog_timer (void) P1OUT = 0x01; / P1.0取反 ,中断允许WDTIE位于IE1.0,初始状态为复位,两种中断,两个级别,两种处理,/* * * 文件名称: * main_c.c * 文件说明: * 程序用于对看门狗的两种工作模式进行测试 * 当setWDT(0)时,程序测试看门狗的看门狗模式 * 当setWDT(1)时,程序测试看门狗的定时器模式,*/ #include /* * 设置看门狗的两种模式 * 在系统加电后,

3、默认的子系统频率是1M,设置WDT延迟为250ms * 那么系统执行0x1ffff 条指令后系统如果没有重新设置WDT, * WDT将导致系统复位 */,void setWDT(int mode) unsigned int tmp; if(mode=1) / 定时器模式 WDTCTL = WDT_ADLY_250; / 250ms中断间隔 IE1 |= WDTIE; / 使能 WDT 中断 P5DIR |= 0x02; / P5.1 output mode _EINT(); / 开中断 else if(mode=0) /看门狗模式 WDTCTL = WDT_ARST_250; /设置看门狗时间

4、间隔为250ms /在系统加电后,默认子系统时钟频率是1M for(tmp=0x7fff;tmp0;tmp-);/延迟 P5DIR |= 0x02; /P5.1 output mode P5OUT |= 0x02; /light LED4 for(tmp=0x7fff;tmp0;tmp-); /延迟, 执行一次tmp-至少要用2个指令 ,/* * 函数说明: * WDT中断函数 * */ #pragma vector = WDT_VECTOR _interrupt void WDT_Interrupt(void) P5OUT = 0x02; /* * main()函数 */ void main

5、(void) setWDT(0); /设置程序运行在看门狗模式 ,基本定时器,支持软件和各种外围模块工作在低频率、低功耗条件下,产生中断,使中断标志置位,fLCD信号,控制单元,#include void main(void) WDTCTL = WDTPW + WDTHOLD; IE2 |= BTIE; /使能BT 中断 FLL_CTL0 |= XCAP14PF; BTCTL = BTDIV + BTIP1 + BTIP0; / 125ms中断间隔 P5DIR |= 0x02; / P5.1 输出 _EINT(); / 使能系统总中断 for (;) _BIS_SR(LPM3_bits); /

6、 进入 LPM3 _NOP(); / Basic Timer 中断服务子程序 #pragma vector= BASICTIMER_VECTOR _interrupt void basic_timer (void) P5OUT = 0x02; /取反P5.1 ,定时器A特性,输入时钟可以有多种选择,可是慢时钟,快时钟以及外部时钟 虽然没有自动重载时间常数功能,但产生的定时脉冲或 PWM(脉宽调制)信号没有软件带来的误差。 不仅能捕获外部事件发生的时间还可锁定其发生时的高低电平。 可实现串行通讯 完善的中断服务功能 4种计数功能选择 8种输出方式选择 支持多时序控制 DMA使能,定时器A结构,定

7、时器A功能模块,计数器部分:输入的时钟源具有4种选择,所选定的时钟源又可以1、2、4或8分频作为计数频率,Timer_A可以通过选择4种工作模式灵活的完成定时/计数功能 捕获/比较器:用于捕获事件发生的时间或产生时间间隔,捕获比较功能的引入主要是为了提高I/O 端口处理事务的能力和速度。不同的MSP430单片机,Timer_A模块中所含有的捕获/比较器的数量不一样,每个捕获/比较器的结构完全相同,输入和输出都决定于各自所带的控制寄存器的控制字,捕获/比较器相互之间工作完全独立。 输出单元:具有可选的8种输出模式,用于产生用户需要的输出信号。支持PWM,全部关于定时器及其操作的控制位都包含在定时

8、器控制寄存器TACTL中,TAR 16位计数器 该单元就是执行计数的单元,是计数器的主体,Timer_A有多个捕获/比较模块,每个模块都有自己的控制字CCTLx,CCRx 捕获/比较寄存器 在捕获/比较模块中,可读可写。,TAIV保存中断向量,定时器计数模式,停止模式,停止模式用于定时器暂停,并不发生复位,所有寄存器现行的内容在停止模式结束后都可用。当定时器暂停后重新计数时,计数器将从暂停时的值开始以暂停前的计数方向计数。例如,停止模式前,Timer_A工作于增/减计数模式并且处于下降计数方向,停止模式后,Timer_仍然工作于增/减计数模式,从暂停前的状态开始继续沿着下降方向开始计数。如果不

9、能这样,则可通过TACTL中的CLR控制位来清除定时器的方向记忆特性。,增计数模式,捕获/比较寄存器CCR0用作Timer_A增计数模式的周期寄存器,因为CCR0为16位寄存器,所以该模式适用于定时周期小于65 536的连续计数情况。计数器TAR可以增计数到CCR0的值,当计数值与CCR0的值相等(或定时器值大于CCR0的值)时,定时器复位并从0开始重新计数。,增计数模式的 计数过程,增计数模式的中断标志位设置,改变CCR0值重置计数周期增计数方式,新周期大于 旧周期的响应,新周期小于 旧周期的响应,连续计数模式,在需要65 536个时钟周期的定时应用场合常用连续计数模式。定时器从当前值计数到

10、0FFFFH后,又从0开始重新计数 .,计数器的 计数过程,标志位 设置,连续计数模式的典型应用,产生多个独立的时序信号:利用捕获比较寄存器捕获各种 其他外部事件发生的定时器数据,产生多个定时信号:通过中断处理程序在相应的比较寄存器CCRx上加上 一个时间差来实现。这个时间差是当前时刻(既相应的CCRx中的值) 到下一次中断发生时刻所经历的时间,增/减计数模式,需要对称波形的情况经常可以使用增/减计数模式,该模式下,定时器先增计数到CCR0的值,然后反向减计数到0。计数周期仍由CCR0定义,它是CCR0计数器数值的2倍。,计数器的 计数过程,标志位 设置,设:ACLK = TACLK = LF

11、XT1 = 32768Hz, MCLK = SMCLK = DCO = 32ACLK = 1.048576MHz,要求从P5.1输出一个方波。 示例程序代码如下: #include void main(void) WDTCTL = WDTPW + WDTHOLD; TACTL = TASSEL0 + TACLR; / ACLK, 清除 TAR CCTL0 = CCIE; CCR0 = 1000; /方波频率:32768/1000/2=16.384 P5DIR |= 0x02; TACTL |= MC0; / Timer_a增计数模式 _EINT(); for (;) _BIS_SR(LPM3_

12、bits); / 进入 LPM3 _NOP(); / Timer A0中断服务程序 #pragma vector= TIMERA0_VECTOR _interrupt void Timer_A (void) P5OUT = 0x02; / 取反P5.1 ,CCTLx 捕获/比较控制寄存器,该寄存器在POR信号后全部复位,但在PUC信号后不受影响。,CAPTMOD10 选择捕获模式,CCIS10捕获模式下选择捕获事件输入源,SCS 选择捕获信号与定时时钟同步、异步关系,CAP 选择捕获模式还是比较模式,OUTMODx 选择输出模式,CCIEx 捕获/比较模块中断允许位,CCIx 捕获/比较模块的

13、输入信号,COV 捕获溢出标志,CCIFGx 捕获比较中断标志,OUT 输出信号,SCCIx 比较相等信号EQUx将选中的捕获比较输入信号CCIx ( CCIxA,CCIxB,Vcc和GND)进行锁存,然后可由SCCIx读出。,捕获/比较模块,捕获模式,当CCTLx中的CAPx=1,该模块工作在捕获模式。这时如果在选定的引脚上发生设定的脉冲触发沿(上升沿、下降沿或任意跳变),则TAR中的值将写入到CCRx中。 每个捕获比较寄存器能被软件用于时间标记。可用于各种目的 当捕获完成后,中断标志位CCIFGx 被置位。,测量软件程序所用时间 测量硬件事件之间的时间 测量系统频率,定时器A中断,CCR0中断,CCR1CCRx 和定时器中断,输出单元,每个捕获/比较模块包含一个输出单元,用于产生输出信号,输出单元的结构,输出单元时序,输出模式,输出模式0 输出模式:输出信号 OUTx由每个捕获/比较模块的控制寄存器 CCTLx中的 OUTx位定

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 管理学资料

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号