历史上的今天
返回首页

历史上的今天

今天是:2025年02月08日(星期六)

正在发生

2020年02月08日 | MSP430G2553(一)IO外部中断说明

2020-02-08 来源:eefocus

这一篇文章将说明MSP430G2553的IO中断配置,整个P1的IO都可以配置IO中断,但中断处理函数只有一个,MSP430和大多数MCU一样提供上升沿、下降沿选择。


在Launchpad上有按键S2,接在P1.3口,当按下后P1.3将接入高电平,从而触发中断。


所有寄存器的具体名称和地址,可以查看M430G2553 datasheet 第 21页中对于P1的寄存器定义


在实例代码中,配置了P1.3和P1.6的LED灯,当按下P1.3的按键产生中断,LED灯将切换点亮


1.按键的中断配置


要配置按键中断,需要先设置P1.3口为输入,并且设置上拉电阻以保障稳定性,


P1DIR &= ~BIT3;//设置P1.3为输入

  P1REN |= BIT3;//启用P1.3电阻


在启用电阻后,由P1OUT来配置下拉还是上拉

  P1OUT |= BIT3;//设置上拉电阻


通过P1IES寄存器设置上升沿,0为下降沿

  P1IES |= BIT3;//P1.3中断边缘选择



需要对P1的中断进行使能,除了这里还有总中断需要使能(在main函数中)

  P1IE |= BIT3;//P1.3中断使能

=====================================================================

2.中断处理函数


在中断处理函数中处理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;

}

推荐阅读

史海拾趣

Amphenol Aerospace公司的发展小趣事

Amphenol Aerospace 是一家在电子行业中知名的公司,专注于设计、制造和销售航空航天领域的连接器和电缆组件。以下是关于 Amphenol Aerospace 公司发展的五个相关故事:

  1. 创立与早期发展:Amphenol Aerospace 公司的历史可以追溯到1932年,当时在美国新泽西州的Linden市成立了Amphenol公司。最初,该公司主要致力于生产无线电连接器和电缆组件。随着航空航天行业的发展和壮大,Amphenol Aerospace 公司开始专注于航空航天领域,成为该行业的关键供应商之一。

  2. 技术创新与产品多样化:Amphenol Aerospace 公司不断进行技术创新,推出了一系列先进的连接器和电缆组件产品。这些产品具有高可靠性、高耐用性和优良的性能特点,广泛应用于航空航天领域的飞机、卫星、导弹、航天器等设备中。Amphenol Aerospace 公司的产品包括圆形连接器、矩形连接器、光纤连接器等,满足了不同客户的需求。

  3. 客户合作与定制化解决方案:Amphenol Aerospace 公司与航空航天领域的客户建立了紧密的合作关系,共同开发定制化的连接器和电缆组件解决方案。公司的工程团队与客户密切合作,根据客户的需求和规格要求,设计和制造符合特定应用要求的产品。这种定制化解决方案为客户提供了更加个性化和专业化的服务。

  4. 质量控制与认证标准:Amphenol Aerospace 公司注重产品质量控制,并严格遵循行业标准和认证要求。公司的生产工艺和质量管理体系符合ISO 9001质量管理体系认证标准,以确保产品质量稳定可靠。此外,Amphenol Aerospace 公司的产品还通过了航空航天领域的相关认证,如AS9100质量管理体系认证等,确保产品符合行业标准和规定。

  5. 全球布局与市场拓展:除了在美国的生产基地外,Amphenol Aerospace 公司还在全球范围内设有多个生产工厂和销售办事处,为客户提供全面的服务和支持。公司在欧洲、亚洲和其他地区建立了广泛的销售网络,拓展了国际市场份额。通过全球布局和市场拓展,Amphenol Aerospace 公司不断扩大业务规模,增强了在航空航天领域的市场竞争力。

这些故事展示了 Amphenol Aerospace 公司从成立初期到如今在技术创新、产品多样化、客户合作与定制化解决方案、质量控制与认证标准以及全球布局与市场拓展等方面取得的重要进展。

EDAC公司的发展小趣事

ECS-A公司是一家专注于电子元器件生产的公司。在发展过程中,ECS-A公司意识到全球化是不可避免的趋势。因此,公司决定实施全球化战略,通过在海外设立生产基地、研发中心和销售网络,拓展国际市场。经过多年的努力,ECS-A公司的产品已经出口到全球多个国家和地区,公司也在多个国家和地区建立了分支机构。这一全球化战略不仅使ECS-A公司的销售额持续增长,也提升了公司的国际竞争力。

ELDECO公司的发展小趣事

面对全球电子记录仪市场的快速增长,ELDECO公司制定了国际化发展战略。公司首先在欧洲市场设立了研发中心和生产基地,通过与当地合作伙伴的紧密合作,成功将产品打入欧洲市场。随后,公司又在美国、亚洲等地设立了分支机构,进一步拓展全球市场。通过国际化战略布局,ELDECO公司不仅提高了品牌影响力,还获得了更多的市场机会和客户资源。

Foxboro I C T Inc公司的发展小趣事

在电子记录仪(ELD)市场刚刚兴起时,ELDECO公司凭借其在嵌入式系统领域的深厚积累,迅速推出了首款高性能、易集成的ELD产品。这款产品不仅满足了当时法规对车辆监控的要求,还通过创新的数据分析功能,帮助运输企业提高了运营效率。随着市场需求的不断增长,ELDECO公司继续加大研发投入,不断推出新产品和解决方案,逐渐在ELD市场确立了领先地位。

DFRobot公司的发展小趣事

在机器人和开源硬件领域取得一定成绩后,DFRobot开始关注教育市场。他们发现,越来越多的学校和教育机构开始引入机器人和编程课程,以培养学生的创新能力和实践能力。于是,DFRobot推出了一系列针对青少年和创客爱好者的教育产品,如机器人套件、3D打印机等,并通过举办各类竞赛和培训活动,吸引更多的学生和教师参与。这一举措不仅拓展了公司的业务领域,也为公司的长期发展奠定了人才基础。

GHI Electronics公司的发展小趣事

GHI Electronics深知技术创新是企业持续发展的关键。因此,公司不断加大研发投入,致力于开发具有自主知识产权的产品。其中,ARM微控制器、显示模块、空气质量传感器、模块化系统以及微处理器等主打产品系列,凭借其卓越的性能和稳定的品质,在消费电子、便携设备、通讯/网络等领域获得了广泛应用。这些技术创新不仅巩固了GHI Electronics在市场上的领先地位,也为其未来的发展奠定了坚实的基础。

问答坊 | AI 解惑

很无助

我的问题很老套了,现在已经快大四了,专业是通信工程,也算是电子类,学校不是很好,但还过的去! 下学期就找工作了,自己也不晓得该怎么办,要说学了点什么东西,个人觉得51和C还算过的去,只是在学校的一次很不起眼比赛中用51做东西拿了个一等奖.考研是不 ...…

查看全部问答>

看高手谈电源制作经验!

漏感主要与哪些因数有关? 屏蔽绕组对变压器的工作影响? 反激电源的开关过程分析? 整流管RC吸收回路的设计? RC吸收电路设计? 反激变换器中RCD嵌位电路设计? 简易法测试传导辐射? 变压器技巧? 电源的电流模式和电压模式? 如何设计 ...…

查看全部问答>

灯用三极管的损坏机理探析

1、灯用三极管损坏机理研究及深爱灯用三极管的发展过程 2、Hfe、“瞬态冷爆”及深爱抗过饱和电路 3、ts、μe及其他 4、荧光灯电子镇流基本工作原理的初步细探…

查看全部问答>

ADS1.2 编译的问题

   我找到一个uc/os 工程文件,已生成了\"HEX\" 但加载到我的ADS 显示的是“The following access path in target  (有一个不认识的字)elease ? Can not be foung:(project)...\\...\\基础实验\\counter    当然 ...…

查看全部问答>

请教一下如何注册一个外部中断(如何描述中断向量表)

我想写一个中断服务程序(ISR),不知道该如何定义中断向量表!也就是说我如何去把中断服务程序的程序的函数跳转指令放置在系统定义的某一个空间中。还有一半中断向量表的位置是固定在CPU空间的某一段,还是通过寄存器可以注册修改。…

查看全部问答>

怎样利用Broadcom公版程式读取Chip

这是我在DOS下运行Broadcom公版程式WL.exe出现的命令,求助如何用这些命令去读取Chip的EEPROM authe_sta_list         Get authenticated sta mac address list autho_sta_list         ...…

查看全部问答>

硬件开发流程及规范---附录

    由于附录中多是文字和流程图的结合,所以不好上传到博客,有需要的朋友可以回复留下您的email,抽空给您发过去。给您带来不便还请谅解!…

查看全部问答>

JlinkV8 Firmware Update

之前参加论坛团购,买了一个JlinkV8。 【团购】J-link V-7(成品或PCB散件)、V8成品正在进行...... https://bbs.eeworld.com.cn/thread-89108-1-2.html   下了Setup_JLinkARM_V422f.exe,一开始firmware update老是error。 网上找了一个 ...…

查看全部问答>

模拟滤波器设计基础

本帖最后由 paulhyde 于 2014-9-15 04:21 编辑 模拟滤波器  …

查看全部问答>