msp430中断定时器_第1页
msp430中断定时器_第2页
msp430中断定时器_第3页
msp430中断定时器_第4页
msp430中断定时器_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

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

文档简介

1、MSP430G2开发板系列培训之 中断中断2022-6-151、中断定义CPU在执行一个程序时,对系统发生的某个事件(程序自身或外界的原因)作出的一种反应:CPU暂停正在执行的程序,保留现场后自动转去处理相应的事件,处理完该事件后,到适当的时候返回断点,继续完成被打断的程序。(如有必要,被中断的程序可以在后来某时间恢复,继续执行。)事件:如读盘,盘有问题,无法读,产生中断,解决后,程序恢复,软件错误也会中断。特点:1) 中断随机的2) 中断是可恢复的3) 中断是自动进行处理的单片机中断的简单应用:按键中断控制小灯亮灭2022-6-15 (1)中断源:中断请求信号的来源。 (2)中断响应与返回:

2、CPU采集到中断请求信号,怎样转向特定的中断服务子程序,并在执行完之后返回被中断程序继续执行。期间涉及到CPU响应中断的条件,现场保护,现场恢复。 (3)优先级控制:中断优先级的控制就形成了中断嵌套,同一个优先级的中断,还存在优先权的高低。优先级是可以编程的,而优先权是固定的。单片机的中断系统中断优先级是固定的并且由图中断优先级是固定的并且由图 2-32-3中显示的连接链中的中显示的连接链中的模块安排来定义。模块安排来定义。 距离距离 CPU/NMIRS CPU/NMIRS 越近的模块,越近的模块,其其优先级越高。中断优先级确定当多于一个中断在同时等优先级越高。中断优先级确定当多于一个中断在同

3、时等待时,采用哪一个中断。待时,采用哪一个中断。中断有三个类型:中断有三个类型: 系统复位系统复位 不可屏蔽不可屏蔽 NMINMI 可屏蔽可屏蔽( (我们重点学习我们重点学习) )2022-6-15中断矢量和加电起动地址位于地址范围中断矢量和加电起动地址位于地址范围 0FFFFh 至至 0FFC0h 内,与表内,与表 2-1中描述的相同。中描述的相同。 一个矢量由用一个矢量由用户使用相应中断处理例程的户使用相应中断处理例程的 16 位地址进行编辑。位地址进行编辑。 完完整中断矢量列表请参与器件专用数据表。整中断矢量列表请参与器件专用数据表。建议为每个分配给一个模块的中断矢量提供一个中断处建议为

4、每个分配给一个模块的中断矢量提供一个中断处理例程。理例程。 包含 RETI指令,并且几个中断矢量可指向它。2022-6-15以下摘自以下摘自MP430g2553.hu表示unsigned long/* Interrupt Vectors (offset from 0 xFFE0)*/#define VECTOR_NAME(name) name#_ptr#define EMIT_PRAGMA(x) _Pragma(#x)#define CREATE_VECTOR(name) void (* const VECTOR_NAME(name)(void) = &name#define PLACE_VE

5、CTOR(vector,section) EMIT_PRAGMA(DATA_SECTION(vector,section)#define ISR_VECTOR(func,offset) CREATE_VECTOR(func); 2022-6-15 PLACE_VECTOR(VECTOR_NAME(func), offset)#define PORT1_VECTOR (2 * 1u) /* 0 xFFE4 Port 1 */#define PORT2_VECTOR (3 * 1u) /* 0 xFFE6 Port 2 */#define ADC10_VECTOR (5 * 1u) /* 0 xF

6、FEA ADC10 */#define USCIAB0TX_VECTOR (6 * 1u) /* 0 xFFEC USCI A0/B0 Transmit */#define USCIAB0RX_VECTOR (7 * 1u) /* 0 xFFEE USCI A0/B0 Receive */#define TIMER0_A1_VECTOR (8 * 1u) /* 0 xFFF0 Timer0)A CC1, TA0 */#define TIMER0_A0_VECTOR (9 * 1u) /* 0 xFFF2 Timer0_A CC0 */#define WDT_VECTOR (10 * 1u) /

7、* 0 xFFF4 Watchdog Timer */#define COMPARATORA_VECTOR (11 * 1u) /* 0 xFFF6 Comparator A */#define TIMER1_A1_VECTOR (12 * 1u) /* 0 xFFF8 Timer1_A CC1-4, TA1 */#define TIMER1_A0_VECTOR (13 * 1u) /* 0 xFFFA Timer1_A CC0 */#define NMI_VECTOR (14 * 1u) /* 0 xFFFC Non-maskable */#define RESET_VECTOR (15 *

8、 1u) /* 0 xFFFE Reset Highest Priority */2022-6-152022-6-15MSP430单片机的IO输入中断 一些高级的单片机的全部IO口都带外部中断功能,比如ARM系列。MSP430 单片机只有P1和P2口带外部中断功能。寄存器配置步骤:1.通过PxDIR将IO方向设置为输入2.通过PxIES配置中断边沿3.通过PxREN配置上下拉电阻4.配置PxIE开启中断 输入中断一般为IO口给出高电平,通过外部动作使电平跳变为低电平,并以此作为中断源最后还要注意开启总中断。2022-6-15VccIOS上下拉电阻原理简化模型上拉保持高电平稳定下拉保持低电平稳定

9、通过按键产生下降沿触发中断2022-6-15中断服务子函数#pragma vector = XXXX_VECTOR/定时器定时器TA中断服务函数中断服务函数_interrupt void XXXXX(void)这是MSP430单片机的中断向量的通用格式P1口的中断向量口的中断向量#pragma vector = PORT1_VECTOR/定时器定时器TA中中断服务函数断服务函数_interrupt void PORT1_ISR(void)再说下再说下IO口中断(以下摘自用户手册)口中断(以下摘自用户手册)2022-6-15超链接至程序代码2022-6-15按键抖动的问题 通常的按键所用开关为机械弹性开关,当机械触点断开、闭合时,由于机械触点的弹性作用,一个按键开关在闭合时不会马上稳定地接通,在断开时也不会一下子断开。因而在闭合及断开的瞬间均伴随有一连串的抖动,为了不产生这种现象而作的措施就是按键消抖。解决方法:1.可以采用柔软的硅胶按键等有效减少按键抖动的产生2.软件消抖。人按动机械按键时产生的抖动大约为20毫秒,通过延时检测可有效消除抖动。2022-6-15实验一:运用按键中断的方法控制小灯的亮灭导入例程:点击File-Import-Code Composer Studio-CCS Projec

温馨提示

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

评论

0/150

提交评论