Msp430f5529时钟系统与定时器以及中断.ppt_第1页
Msp430f5529时钟系统与定时器以及中断.ppt_第2页
Msp430f5529时钟系统与定时器以及中断.ppt_第3页
Msp430f5529时钟系统与定时器以及中断.ppt_第4页
Msp430f5529时钟系统与定时器以及中断.ppt_第5页
已阅读5页,还剩49页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

,主讲人:蒋良茂 2015年4月,MSP430F5529时钟系统与定时器以及中断,MSP430F5529时钟系统与定时器,第一部分内容: 时钟系统的概念 MSP430f5529的时钟系统结构 时钟系统相关寄存器的介绍 程序的编写,时钟系统概念,时钟系统 的功能: 1.为CPU提供时序。 2.为不同的片内外设提供不同的时钟。,MSP430的时钟系统,功能: 1. 可工作于不同的工作模式,使单片机工作于不同工作模式。430单片机有一种活动模式,七种低功耗模式,通过这些模式的切换,可以合理的利用系统资源,实现 整个系统的低功耗。 2.为不同的片内外设提供不同的时钟。不同的外设往往工作的时钟不同,有的时钟较高,有的时钟较低,甚至有时候一个外设也会处于不同的工作频率。,模式和时钟的关系,MSP430F5529 的时钟树,时钟树,时钟源,XT1CLK:低频/高频振荡器,可使用32.768k 的晶振或432M的外部时钟源 VLOCLK:内部超低功耗低频震荡器,典型值12k REFCLK:内部调整低频参考振荡器,典型值 32.768 DCOCLK:内部数字时钟振荡器,由FLL稳定得到 XT2CLK:高频震荡器,可使用432M的外部时钟源,时钟信号,ACLK 辅助时钟,其时钟源可由软件控制XT1、REFOC、VLO、DCO、DCOCLKDIV、XT2里面选取。其中DCOCLKDIV是由DCO经1、2、4、8、16或者32分频得到。注意,ACLK同样可以再次被1、2、4、8、16或者32分频,主要用于低速外设。 MCLK 主时钟,MCLK和ACLK 来源相同,MCLK专为CPU提供主频。 SMCLK 子系统时钟,与ACLK来源相同。主要用于高速外设。,PMM 电源管理单元,PMM和时钟系统的联系,PMM和时钟系统的联系,可是都不重要!,时钟模块控制寄存器,见USERS GUIDE,示例程序1,#include int main(void) WDTCTL = WDTPW +WDTHOLD;/关闭看门狗 UCSCTL4 = SELA_1; /ACLK 的时钟配置为VLO /设置P1.0输出ACLK P1SEL |= BIT0; P1DIR |= BIT; _bis_SR_register(LPM3_bits);/进入低功耗模式3 return 0; ,DCORSEL,DCO Type Value,时钟系统示例程序,第二部分:定时器,实际应用中,经常需要对外部事件进行计数、定时控制、PWM等定制波形输出、脉冲宽度测量、速度测量、周期/频率测量、事件发生时刻的捕捉,这些测量与控制功能均可借助定时器/计数器来实现。因此MCU中通常均设计有多个定时器/计数器。 在MCU中,无论是定时功能还是计数功能,实际上都是由n位(8位、16位、32位等)的加法/减法计数器实现,区别仅在于计数输入信号的不同。 一般地讲,计数器的计数输入信号是外部事件(脉冲信号),而定时器的计数输入信号则是MCU中的时钟信号或经过分频后的时钟信号。 MSP430F5529定时器分为看门狗定时器、定时器A和定时器B。,看门狗定时器,喂狗的哲学,定时器A,异步16-bit定时器/计数器,具有4种工作模式; 可编程选择的时钟源; 3个可编程的捕捉/比较寄存器; 可编程输出方式; 具有中断功能(计数器溢出、捕捉/比较中断),定时器A方框图,00: /1 01: /2 10: /4 11: /8,00: stop mode 01: up mode 10: continuous mode 11: up/down mode,1: TA interrupt enabled,1: interrupt pending,1: reset TAR ,clock divider and count direction for up/down mode. The TACLR bit is automatically reset and is always read as zero.,定时器 A 控制寄存器,定时器 A 的四种计数方式(Count Mode),Mode Control,0 0: stop mode 0 1: up mode 1 0: continuous mode 1 1: up/down mode,MCx count mode,Stop mode : the timer is halted,当不使用Timer时, 应将Timer配置为Stop mode , 这样可以降低芯片的功耗,period=(TACCR0+1)T,Up Mode 需要CCR0(比较方式)协助,在Timer Clock的上升沿处TAR=TAR+1, 当TARTACCR0时,自动清零TAR,Continuous Mode,Up/Down Mode 本方式需要CCR0(比较方式)协助,定时器A捕获/比较模块,当捕获电路捕捉到一个有效的输入信号后: 将 TAR 的值锁存至 TACCRx 中; 置位中断标志位 TACCRx CCIFG,捕获模式( Capture Mode , CAP=1 ) 用于捕捉事件发生的时刻 可应用于速度、脉冲宽度等测量,比较模式( Compare Mode , CAP=0 ) 主要应用: 产生 PWM 等定制输出信号; 定时输出:在指定时间间隔结束后产生输出; 定时中断:在指定时间间隔结束后产生中断。 工作原理:当 TAR 计数到 TACCRx 时 置位中断标志 CCIFG; 内部信号 EQUx=1; 根据输出方式输出相应的信号。,CAP=0,比较模式( Compare Mode , CAP=0 ),比较输出电路,OUTx,7种输出方式 定义:,定时器:Up/Down Mode OUT1 使用 TACCR0 和 TACCR1 OUT2 使用 TACCR0 和 TACCR2,一个常用的例子:带死区的PWM波,OUT1 OUT2,Tdead = Ttimer( TACCR1-TACCR2 ) Ttimer: Cycle time of the timer clock,Tdead,定时器A示例程序,定时器B,定时器A的不同: 1.TB的计数长度可变,8,10,12,16 2.无SCCI寄存器位功能 3.增加了比较锁存器且从CCR到存器的时机可编程 5.TB支持多种、同步的定时功能和多重比较功能和多重波形输出功能,可同步更新多路PWM的缓冲。,定时器B示例程序,第三部分:中断,中断的概念: 中断是暂停CPU正在运行的程序,转去执行相应的中断服务程序,完毕后返回被中断的程序继续运行的现象和技术。 中断首先需要有中断源发出中断请求,并征得系统允许(屏蔽、优先权)后才会发生。转去执行中断服务程序前需保护中断现场,执行完中断服务程序后应恢复中断现场。,不同的中断请求表示不同的事件,因此CPU对不同中断请求的响应也应有轻重缓急之分。 中断源拥有(固定的或可通过程序设置的)一个优先权,称为中断优先权(优先级) 当多个中断源同时发出中断请求时,CPU按照中断优先权的高低顺序依次响应。在有的CPU的中断系统中还规定高优先级的中断可以中断低优先级的中断子程;低优先级的中断不能中断高优先级的中断子程;任何中断不能中断同一优先级的中断子程。,中断优先级,MSP430F5529中断系统,系统复位(system reset) 非屏蔽中断((Non)-maskable NMI) 可屏蔽中断(maskable),MSP430的中断源,除了下面的其他都是可屏蔽中断!,中断向量表: 0FFE0h0FFFEh 表中可存放16个中断向量 每个中断向量为16BIT 由编程者负责编程 中断向量: 中断服务子程的入口地址,注:MSP430的某些外设还有其“子向量表”,用以区分共享同一个中断向量的不同中断请求,中断优先级和中断嵌套,在MSP430中,不同的中断有各自固定的中断优先级。当有多个中断同时请求时,MSP430 CPU将响应优先级最高的中断请求。 中断优先级仅用于裁决同时产生的中断请求。如果在某一中断服务子程中置位GIE(即允许嵌套),则任何中断请求均将中断正在执行的中断服务子程(中断嵌套),而不管中断的优先级如何。即在允许嵌套的情况下,低优先级的中断请求可以中断高优先级的中断服务子程的运行,同级的中断也可以相互嵌套。,中断响应过程,当前指令执行完毕,且满足响应条件; 入栈保护断点:相当于执行 PUSH PC; 入栈保护SR:相当于执行 PUSH SR; 优先级裁决:若有多个中断同时请求,则CPU选择优先级最高的中断请求进行响应; 中断请求标志的处理:对于单一中断标志的中断源请求,则由CPU自动清零该中断标志;对于有多个中断标志的中断源请求,则中断标志的清零处理交由中断服务子程完成(以便于中断服务子程区分本次中断到底是由哪一个/哪些中断标志请求的); 清零SR(关中断,结束低功耗方式); 装载中断向量至PC,转去执行中断服务子程。,MSP430 中断控制与中断返回指令 EINT ;Enable general INTerrupts DINT ;Disable general INTerrupts,开中断指令,对 SR 的影响: Status Bits: are not affected Mode Bits: GIE=1 OSCOFF and CPUOFF are not affected 因此等同于_bic_SR_register(GIE);,Note:The instruction following the EINT is always executed, even if an interrupt service request is pending when the interrupts are enable.,关中断指令,对 SR 的影响: Status Bits: are not affected Mode Bits: GIE=0 OSCOFF and CPUOFF are not affected 因此等同于_bic_SR_register(GIE);,Note: If any code sequence needs to be protected from interrupt, the DINT should be executed at least one instruction before the beginning of the uninterruptible sequence, or should be followed by a NOP instruction.,上述便是MSP430的中断系统,由于中断系统和片内其他的模块有着直接联系,接下来挑出常用的IO口外部中断和定时器中断为大家讲解,外部中断编程要点,P1SEL.x=0 ;digital I/O P1IE.x=1 ;允许中断 GIE=1 ;可屏蔽中断 P1DIR.x=0 ;输入 P1IES.x=? ;沿选择,定时器A中断, TACCR0 中断: TACCR0 CCIFG,独享中断向量,在 0FFECh 中

温馨提示

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

评论

0/150

提交评论