1290|0

6807

帖子

0

TA的资源

五彩晶圆(高级)

楼主
 

MSP430G2553中断处理函数 [复制链接]

中断处理函数


在中断处理函数中处理LED程序


编译器指示
#pragma vector=PORT1_VECTOR

__interrupt void PORT1_ISR(void)
{

  delay(100);//约100ms
   P1OUT ^= (1<<6);          //反向P1.0和P1.6
   P1OUT ^= (1<<0);
   P1IFG = 0;//清除中断标识


}


源代码:


//P1.0---------Red Led
//P1.3---------Button
//P1.6---------Green Led


#include "msp430g2553.h"
//名称:delay(int time)
//功能:延时程序
void delay(int time)
{
  static int i,j;

  for(i=0;i
    for(j=0;j<100;j++)
    {
    }
}


//名称:InitLed()
//功能:初始化LED
void InitLed()
{
  P1DIR |= BIT0+BIT6;//设置BIT0和BIT6为输出
  P1OUT &= ~0x01; //设置BIT0和BIT6低电平
  P1OUT |= 0x40; //设置BIT0和BIT6低电平
}






//名称:InitIOInterrupt()
//功能:初始化P1的按键中断配置
void InitIOInterrupt()
{
  P1DIR &= ~BIT3;//设置P1.3为输入
  P1REN |= BIT3;//启用P1.3电阻
  P1OUT |= BIT3;//设置上拉电阻
  P1IES |= BIT3;//P1.3中断边缘选择
  P1IE |= BIT3;//P1.3中断使能
  P1IFG = 0x00;//清除中断标识
}


//名称:PORT1_ISR(void)
//功能:按键中断的处理函数
#pragma vector=PORT1_VECTOR
__interrupt void PORT1_ISR(void)
{

  delay(100);//约100ms
   P1OUT ^= (1<<6);
   P1OUT ^= (1<<0);
   P1IFG = 0;//清除中断标识


}


int main( void )
{
  WDTCTL = WDTPW + WDTHOLD;
  InitLed();                     //初始化LED端口
  InitIOInterrupt();             //初始化IO中断
  _EINT();                         //开总中断
  while(1);
  return 0;
}


 
点赞 关注

回复
举报
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表