历史上的今天
返回首页

历史上的今天

今天是:2025年03月17日(星期一)

正在发生

2020年03月17日 | MSP430F149按键中断寄存器配置

2020-03-17 来源:eefocus

P20~P23为LED,P11为按键。按下为低电平。


使用中断函数按下一次按键则LED状态反转一次。


#include "io430.h"

#include "in430.h"

 

void select_xt2(void){

  unsigned char i;

/*------选择系统主时钟为8MHz-------*/

    BCSCTL1 &= ~XT2OFF;                 

    do{    

        IFG1 &= ~OFIFG;                  //清除晶振失败标志

        for (i = 0xFF; i > 0; i--);     //等待8MHz晶体起振

    }while ((IFG1 & OFIFG));             

    BCSCTL2 |= SELM_2 + SELS  ;        //MCLK和SMCLK选择高频晶振

}

 

void main()

{

  // Stop watchdog timer to prevent time out reset

  WDTCTL = WDTPW + WDTHOLD;

  P1DIR = 0XFD;   //P1 in or out

  P1IE = 0X02;     //开启P1中断

  P1IES = 0X02;   //中断触发方式

  P1IFG = 0X00;   //中断标志清零

  

  P2DIR = 0XFF;

  P2OUT = 0XFF;

  _EINT();

}

 

#pragma vector = PORT1_VECTOR

__interrupt void PORT1_ISR(void)

{

  __delay_cycles(50000);

  if((P1IN&0X02) == 0)

    P2OUT = ~P2OUT;

  __delay_cycles(50000);

}

其中,配置P1端口的中断时要用到的寄存器有:


P1IE,中断使能寄存器,只使能P11的中断:0000,0010 = 0X02


P1IES,中断触发选择寄存器,0上升沿,1下降沿,0000,0010=0X02


P1IFG,中断标志寄存器,清零,0X00


一定要开启全部中断!__EINT();


中断响应函数定义为统一格式:



#pragma vector = PORT1_VECTOR

__interrupt void PORT1_ISR(void)

其中,PORT1_VECTOR为头文件中定义了的

推荐阅读

史海拾趣

Delus Corp公司的发展小趣事

为了降低生产成本、提高生产效率,Delus Corp公司不断优化供应链管理。公司建立了完善的供应链管理系统,实现了从原材料采购、生产制造到产品销售的全程监控和管理。同时,公司还与供应商建立了长期稳定的合作关系,确保原材料的稳定供应和质量的可靠性。这些措施的实施,使得公司的运营成本得到了有效降低,生产效率得到了显著提升。

FIDELIX公司的发展小趣事

2015年,中国半导体企业东芯半导体有限公司看中了FIDELIX在存储芯片领域的优势,决定对其进行收购。经过多轮谈判和协商,东芯半导体成功收购了FIDELIX 25.3%的股权,成为其第一大股东及实际控制人。这次收购不仅加强了东芯半导体在存储芯片领域的技术实力,也为FIDELIX提供了更广阔的市场和发展空间。

乾坤(Cyntec)公司的发展小趣事

产品质量是企业的生命线。乾坤公司深谙此道,因此在发展过程中始终注重质量管理体系的建立和完善。公司引进了国际先进的质量管理理念和方法,通过ISO 9001质量管理体系认证,并严格执行每一道生产工序的质量控制。为了确保产品质量的稳定性和可靠性,乾坤还建立了完善的产品测试和验证流程,每一批产品都要经过严格的质量检测才能出厂。这些举措不仅提升了产品质量,也赢得了客户的广泛认可和信赖。

EMCORE公司的发展小趣事

随着国内市场的逐渐饱和,乾坤公司开始将目光投向国际市场。为了打开海外市场,公司积极参加国际电子展会,与海外客户进行面对面的交流与合作。同时,乾坤也加强了与国际知名企业的战略合作,通过技术授权、联合开发等方式,不断拓展其产品的国际影响力。经过几年的努力,乾坤的电子元器件已经成功打入欧美、东南亚等多个国家和地区,公司的国际化进程取得了显著的成果。

Amprobe公司的发展小趣事

随着国内市场的逐渐饱和,乾坤公司开始将目光投向国际市场。为了打开海外市场,公司积极参加国际电子展会,与海外客户进行面对面的交流与合作。同时,乾坤也加强了与国际知名企业的战略合作,通过技术授权、联合开发等方式,不断拓展其产品的国际影响力。经过几年的努力,乾坤的电子元器件已经成功打入欧美、东南亚等多个国家和地区,公司的国际化进程取得了显著的成果。

Green Power Solutions公司的发展小趣事
使用合适的工具打开稳压器的外壳,注意不要损坏内部元件。

问答坊 | AI 解惑

麻烦推荐个运放,能测出1mV左右电压,失真比较小~~

本信息来自合作QQ群:电子工程师技术交流(12425841) 群主在坛子ID:Kata   麻烦推荐个运放,能测出1mV左右电压,失真比较小 用OP07可以不? …

查看全部问答>

KEIL下LPC1114代码运行问题

用keil编码1114的i2c,我在设置了编译优化选项之后出现了巨大的问题。索性,在取消掉所有的优化选项后i2c通信已经正常。   可惜结果仍然不正确,我就跟代码。这时候才发现一个无法理解的问题。我在funcA()里调用funcB()时传入一个静态myVar ...…

查看全部问答>

疑问

   大家好,我现在跟同学一起做一个有关嵌入式的东西,就是想让平台上的图像在触摸屏幕上显示出来,用软件来实现 希望大家能多多指导!!…

查看全部问答>

有关CDMA模块的AT指令问题

如题,公司用的是ANTDATA公司出的DTGS-800模块,虽然也带有文档说明,但我觉得不够详细,所以特来发帖提问,希望大家踊跃发言,问题如下: 1、读取短信的时候,怎样才能不改变短信的状态呢?例如,执行了以下AT命令 AT+UGSM=1 返回OK(DTGS-800支 ...…

查看全部问答>

求助:PWM输出8.2KHZ1:1的方波,为什么在4.3K有个的很强频率分量

设置如下: unsigned short pwmizhouqi=256;   LPC_TMR16B1->TCR = 0;      LPC_SYSCON->SYSAHBCLKCTRL |= (1PIO1_9 = 0X01;   LPC_TMR16B1->MR0 = pwmizhouqi/2;       LPC ...…

查看全部问答>

求教

MSP430f2XX  系列单片机能不能用并口JTAG下载程序?一定要用USB  二线制的吗?谢谢…

查看全部问答>

LaunchPad调试nrf24l01--续

原帖不能编辑了,就新开一帖在这里,望斑竹谅解   目前为止,基于launchpad和nrf24l01的单向收发已经实现,程序在下面放出,还有很多要改进的,仅供参考。欢迎高手拍砖。   学习经历: 1.收到板子后查了下资料,发现很丰富啊,于是 ...…

查看全部问答>

单片机编程

http://wenku.baidu.com/view/eeb3310d6c85ec3a87c2c586.html…

查看全部问答>

MPLAB IDE和PICC编译问题。

我用的是MPLAB ICE和PICC编译PIC16F722,之前编译什么的都没问题,重装系统后再安装后就再也编译不成功了,提示No installed compiler driver supports device 16F722。 编译PIC16F505没有问题。每次点Project-Select Language Toolsuite后HI-TECH ...…

查看全部问答>