MSP430G2553学习笔记 DAY2 中断学习及初始化设置

IO中断的使用

1.寄存器

PxIE IO中断使能寄存器
PxIES 中断触发边沿选择。0上升沿,1下降沿
PxIFG 中断标志位寄存器。事件发生后被置1,响应后需要手动置0

寄存器的使用方法与day1相同,不再赘述

2.中断函数的写法

#pragma vector=PORT1_VECTOT;
//#pragma为系统编译指令;vector=后加中断向量地址的宏定义,如定时器TIMER0_A1_VECTOR;
__interrupt void PORT1(void)
//__interrupt中断服务关键字(前面是两道下划线);PORT1为函数名,可自定义
{
	//用户代码
}

3.按键通过中断控制LED

根据按键S2的状态,控制绿色LED灯。每按下S2一次,LED改变一次亮灭状态。

#include<msp430g2553.h>
int main()
{
    WDTCTL = WDTPW | WDTHOLD;
    P1DIR = BIT6;
    P1REN = BIT3;
    P1OUT = BIT3;
    P1IE = BIT3;//开P1.3中断
    P1IES = BIT3;//P1.3中断触发边沿选择下降沿,0为上升沿,1为下降沿;
    P1IFG &= ~BIT3;//P1.3中断标志位置0

    _BIS_SR(GIE);//开总中断
    while(1)
    {
        __no_operation();  //什么都不做
    }
}

#pragma vector=PORT1_VECTOR
__interrupt void PORT1(void)
{
    P1OUT ^= BIT6;
    P1IFG &= ~BIT3;//中断标志位置0
}

完成GPIO初始化后,务必要使用_BIS_SR(GIE)指令来开总中断,否则不会相应中断请求。

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值