Msp430f5529时钟系统与定时器以及中断
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
主讲人:蒋良茂
中断响应过程
1. 2. 3. 4. 5. 当前指令执行完毕,且满足响应条件; 入栈保护断点:相当于执行 PUSH PC; 入栈保护SR:相当于执行 PUSH SR; 优先级裁决:若有多个中断同时请求,则CPU选 择优先级最高的中断请求进行响应; 中断请求标志的处理:对于单一中断标志的中断 源请求,则由CPU自动清零该中断标志;对于有 多个中断标志的中断源请求,则中断标志的清零 处理交由中断服务子程完成(以便于中断服务子 程区分本次中断到底是由哪一个/哪些中断标志 请求的); 清零SR(关中断,结束低功耗方式); 装载中断向量至PC,转去执行中断服务子程。
在MSP430中,不同的中断有各自固定的中断优先级。 当有多个中断同时请求时,MSP430 CPU将响应优先级最高 的中断请求。
中断优先级仅用于裁决同时产生的中断请求。如果在 某一中断服务子程中置位GIE(即允许嵌套),则任何中断 请求均将中断正在执行的中断服务子程(中断嵌套),而 不管中断的优先级如何。即在允许嵌套的情况下,低优先 级的中断请求可以中断高优先级的中断服务子程的运行, 同级的中断也可以相互嵌套。
子程;低优先级的中断不能中断高优先级的中断子程; 任何中断不能中断同一优先级的中断子程。
主讲人:蒋良茂
MSP430F5529中断系统
MSP430的中断源
• 系统复位(system reset) • 非屏蔽中断((Non)-maskable NMI) • 可屏蔽中断(maskable)
主讲人:蒋良茂
主讲人:蒋良茂
时钟信号
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来源相同。主要用于高速外设。
主讲人:蒋良茂
看门狗定时器
喂狗的哲学
主讲人:蒋良茂
定时器A
• • • • • 异步16-bit定时器/计数器,具有4种工作模式; 可编程选择的时钟源; 3个可编程的捕捉/比较寄存器; 可编程输出方式; 具有中断功能(计数器溢出、捕捉/比较中断)
主讲人:蒋良茂
定时器A方框图
主讲人:蒋良茂
定时器 A 控制寄存器
主讲人:蒋良茂
模式和时钟的关系
主讲人:蒋良茂
MSP430F5529 的时钟树
主讲人:蒋良茂
时钟树
主讲人:蒋良茂
时钟源
XT1CLK:低频/高频振荡器,可使用32.768k 的晶振或4~ 32M的外部时钟源 VLOCLK:内部超低功耗低频震荡器,典型值12k REFCLK:内部调整低频参考振荡器,典型值 32.768 DCOCLK:内部数字时钟振荡器,由FLL稳定得到 XT2CLK:高频震荡器,可使用4~32M的外部时钟源
主讲人:蒋良茂
比较模式( Compare Mode , CAP=0 )
CAP=0
主讲人:蒋良茂
比较输出电路
OUTx
主讲人:蒋良茂
7 种 输 出 方 式 定 义:
主讲人:蒋良茂
一个常用的例子: 带死区的PWM波
定时器:Up/Down Mode OUT1 使用 TACCR0 和 TACCR1 OUT2 使用 TACCR0 和 TACCR2
主讲人:蒋良茂
DCORSEL
主讲人:蒋良茂
DCO Type Value
主讲人:蒋良茂
时钟系统示例程序
主讲人:蒋良茂
第二部分:定时器
实际应用中,经常需要对外部事件进行计 数、定时控制、PWM等定制波形输出、脉冲宽度测 量、速度测量、周期/频率测量、事件发生时刻的 捕捉……,这些测量与控制功能均可借助定时器/ 计数器来实现。因此MCU中通常均设计有多个定时 器/计数器。 在MCU中,无论是定时功能还是计数功能,实 际上都是由n位(8位、16位、32位等)的加法/减 法计数器实现,区别仅在于计数输入信号的不同。 一般地讲,计数器的计数输入信号是外部事 件(脉冲信号),而定时器的计数输入信号则是 MCU中的时钟信号或经过分频后的时钟信号。 MSP430F5529定时器分为看门狗定时器、定时 器A和定时器B。
场。
主讲人:蒋良茂
中断优先级
不同的中断请求表示不同的事件,因此CPU对不
同中断请求的响应也应有轻重缓急之分。 中断源拥有(固定的或可通过程序设置的)一
个优先权,称为中断优先权(优先级)
当多个中断源同时发出中断请求时, CPU 按 照中断优先权的高低顺序依次响应。在有的 CPU 的中断
系统中还规定高优先级的中断可以中断低优先级的中断
SCG1
Note:The instruction following the EINT is always executed, even if an interrupt service request is pending when the interrupts are enable.
主讲人:蒋良茂
当不使用Timer时, 应将Timer配置为Stop mode , 这样可以降低芯片的功耗
主讲人:蒋良茂
Up Mode 需要CCR0(比较方式)协助
在Timer Clock的上升沿处TAR=TAR+1, 当TAR≥TACCR0时,自动清零TAR
主讲人:蒋良茂
period=(TACCR0+1)×T
Continuous Mode
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; }
6. 7.
主讲人:蒋良茂
MSP430 中断控制与中断返回指令
EINT DINT
;Enable general INTerrupts ;Disable general INTerrupts
主讲人:蒋良茂
开中断指令
对 SR 的影响: Status Bits: are not affected Mode Bits: GIE=1 OSCOFF and CPUOFF are not affected 因此等同于__bic_SR_register(GIE); 15 reserved 9 8 V 7 6 SCG0 5 OSC OFF 4 CPU OFF 3 GIE 2 N 1 Z 0 C
定时器 A 的四种计数方式(Count Mode)
MCx 0 0: 0 1: 1 0: 1 1: count mode stop mode up mode continuous mode up/down mode
Mode Control
主讲人:蒋良茂
Stop mode : the timer is halted
主讲人:蒋良茂
定时器B示Hale Waihona Puke Baidu程序
主讲人:蒋良茂
第三部分:中断
中断的概念: 中断是暂停 CPU 正在运行的程序,转去执行相 应的中断服务程序,完毕后返回被中断的程序继续 运行的现象和技术。
中断首先需要有中断源发出中断请求,并征得系统允 许(屏蔽、优先权)后才会发生。转去执行中断服务程序 前需保护中断现场,执行完中断服务程序后应恢复中断现
主讲人:蒋良茂
Up/Down Mode
本方式需要CCR0(比较方式)协助
主讲人:蒋良茂
定时器A捕获/比较模块
主讲人:蒋良茂
当捕获电路捕捉到一个有效的输入信号后: • 将 TAR 的值锁存至 TACCRx 中; • 置位中断标志位 TACCRx CCIFG
捕获模式( Capture Mode , CAP=1 )
00: /1 01: /2 10: /4 11: /8
00: stop mode 01: up mode 10: continuous mode 11: up/down mode
1: interrupt pending
1: TA interrupt enabled
1: reset TAR ,clock divider and count direction for up/down mode. 主讲人:蒋良茂 The TACLR bit is automatically reset and is always read as zero.
用于捕捉事件发生的时 刻
可应用于速度、脉冲宽 度等测量
主讲人:蒋良茂
比较模式( Compare Mode , CAP=0 )
主要应用: • 产生 PWM 等定制输出信号; • 定时输出:在指定时间间隔结束后产生输出; • 定时中断:在指定时间间隔结束后产生中断。
工作原理:当 TAR 计数到 TACCRx 时 • 置位中断标志 CCIFG; • 内部信号 EQUx=1; • 根据输出方式输出相应的信号。
主讲人:蒋良茂
MSP430的时钟系统
功能:
1. 可工作于不同的工作模式,使单片机工作于不同工作模式。430 单片机有一种活动模式,七种低功耗模式,通过这些模式的 切换,可以合理的利用系统资源,实现 整个系统的低功耗。 2.为不同的片内外设提供不同的时钟。不同的外设往往工作的时钟 不同,有的时钟较高,有的时钟较低,甚至有时候一个外设 也会处于不同的工作频率。
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.
关中断指令
对 SR 的影响: Status Bits: are not affected Mode Bits: GIE=0 OSCOFF and CPUOFF are not affected 因此等同于__bic_SR_register(GIE); 15 reserved 9 8 V 7 SCG1 6 SCG0 5 OSC OFF 4 CPU OFF 3 GIE 2 N 1 Z 0 C
MSP430F5529时钟系统与定时器以及中断
主讲人:蒋良茂 单击添加文字 2015年4月
MSP430F5529时钟系统与定时器
第一部分内容:
时钟系统的概念 MSP430f5529的时钟系统结构 时钟系统相关寄存器的介绍 程序的编写
主讲人:蒋良茂
时钟系统概念
时钟系统 的功能:
1.为CPU提供时序。 2.为不同的片内外设提供不同的时钟。
除了下面的其他都是可屏蔽中断!
主讲人:蒋良茂
中断向量表:
0FFE0h~0FFFEh 表中可存放16个中断向量 每个中断向量为16BIT 由编程者负责编程
中断向量:
中断服务子程的入口地址 注:MSP430的某些外设还有其“子向量 表”,用以区分共享同一个中断向量的不 同中断请求
主讲人:蒋良茂
中断优先级和中断嵌套
Tdead = Ttimer×( TACCR1-TACCR2 ) Ttimer: Cycle time of the timer clock
Tdead
OUT1 OUT2
主讲人:蒋良茂
定时器A示例程序
主讲人:蒋良茂
定时器B
定时器A的不同: 1.TB的计数长度可变,8,10,12,16 2.无SCCI寄存器位功能 3.增加了比较锁存器且从CCR到存器的时机可编程 5.TB支持多种、同步的定时功能和多重比较功能和多重 波形输出功能,可同步更新多路PWM的缓冲。
主讲人:蒋良茂
PMM 电源管理单元
主讲人:蒋良茂
PMM和时钟系统的联系
主讲人:蒋良茂
PMM和时钟系统的联系
主讲人:蒋良茂
可是都不重要!
主讲人:蒋良茂
时钟模块控制寄存器
见USERS' GUIDE
m sp 430f5529us erG ui d e. pdf
主讲人:蒋良茂
示例程序1
#include <msp430f5529.h>