无人机微控制器技术课件 27.MSP430中中断的使用_第1页
无人机微控制器技术课件 27.MSP430中中断的使用_第2页
无人机微控制器技术课件 27.MSP430中中断的使用_第3页
无人机微控制器技术课件 27.MSP430中中断的使用_第4页
无人机微控制器技术课件 27.MSP430中中断的使用_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

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

文档简介

《无人机微控制器技术》MSP430中中断的使用MSP430中中断的使用MSP430中中断的使用1、MSP430外部中断概述外部中断源:P1和P2端口特点:使用中断后,只要电平发生了合适的变化,P1或P2引脚端口就会触发中断。操作:通过设置中断出发沿控制寄存器PxIES,可以由上升沿、下降沿触发外部中断;通过设置中断允许寄存器PxIE,标志相应引脚就能响应中断请求;而中断标志寄存器PxIFG判断标志相应引脚是否发生外部中断。位置76543210名称PxIFG.7PxIFG.6PxIFG.5PxIFG.4PxIFG.3PxIFG.2PxIFG.1PxIFG.0MSP430中中断的使用2、中断标志寄存器——PxIFG只有P1和P2两个端口才有;每个寄存器有8个标志位,标志相应引脚是否有中断请求。PxIFG特点为1时,表示有中断请求;为0时,表示无中断请求。引脚外部中断发生后,须将中断标志位清零,为下一次中断做准备。中断标志位置76543210名称PxIE.7PxIE.6PxIE.5PxIE.4PxIE.3PxIE.2PxIE.1PxIE.0MSP430中中断的使用3、中断允许寄存器——PxIE只有P1和P2两个端口才有;每个寄存器有8个标志位,标志相应引脚是否允许中断请求。PxIE特点为1时,引脚允许中断产生;为0时,表示禁止中断产生。中断标志只有P1和P2两个端口才有;每个寄存器有8个标志位,表示标志相应引脚的触发沿。PxIES特点为0时,引脚上升沿产生中断;为1时,表示下降沿触发中断。中断标志位置76543210名称PxIES.7PxIES.6PxIES.5PxIES.4PxIES.3PxIES.2PxIES.1PxIES.0MSP430中中断的使用3、中断允许寄存器——PxIES/**

*

中断处理函数

**/#pragma

vector

=

PORT1_VECTOR

//

中断向量__interrupt

void

PORT_ISR(void){

//TODO:中断处理程序

P1IFG

=

0;

//清除标志位}MSP430中中断的使用4、中断程序的写法MSP430中中断的使用4、中断程序的写法int

main(void){

WDTCTL

=

WDTPW

+

WDTHOLD;

Port_Init();

//

初始化端口

_EINT();

//

//

Write

your

code

here

while

(1)

{

}

return

0;}

MSP430中中断的使用4、中断程序的写法void

Port_Init(){

P1SEL

=

0x00;

//

一般功能

P1IES

=

0x00;

//

下降沿触发

P1IE

=

0x0F;

//

允许中断

P1IFG

=

0x00;

//

清空中断标志位

P1DIR

=

0x00;

//

输入模式

P3OUT

=

0xFF;

P3DIR

=

0x00;}MSP430中中断的使用4、中断程序的写法#pragma

vector

=

PORT1_VECTOR

//

中断向量__interrupt

void

PORT_ISR(void){

if

(P1IFG

&

0x0F)

{

switch

(P1IFG

&

0x0F)

{

case

0x01:

if

((P1IN

&

BIT0)

>

0)

{MSP430中中断的使用4、中断程序的写法

delay_ms(20);

if

((P1IN

&

BIT0)

>

0)

{

P3DIR

=

0;

P1IFG

=

0;

}

}

break;case

0x02:

if

((P1IN

&

BIT1)

>

0)

{

delay_ms(20);

if

((P1IN

&

BIT1)

>

0)

{

P3DIR

=

BIT1;

P1IFG

=

0;

delay_ms(60);

}

}

break;

case

0x04:

if

((P1IN

&

BIT2)

>

0)

{

delay_ms(20);

if

((P1IN

&

BIT2)

>

0)

{

P3DIR

=

BIT2;

P1IFG

=

0;

delay_ms(60);

}

}

break;MSP430中中断的使用4、中断程序的写法

case

0x08:

if

((P1IN

&

BIT3)

>

0)

{

delay_ms(20);

if

((P1IN

&

BIT3)

>

0)

{

P3DIR

=

BIT3

温馨提示

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

评论

0/150

提交评论