MSP430-中断的使用

网友投稿 596 2022-11-16

MSP430-中断的使用

MSP430-中断的使用

因为MSP430的操作是在寄存器上进行直接操作的,所以学习起来有一点繁琐,不像32,他有自己分装好的库可以提供大家使用,介绍中断,那就要了解下中断有关的寄存器:

这里写按键中断作为测试程序:

#ifndef __CLOCK_H#define __CLOCK_H#define uchar unsigned char #define uint unsigned intvoid Int_Clk(void);#endif

#include#include "clock.h"/**************************************************************************** 初始化时钟******************************************************************************/void Int_Clk(void){ uchar i; BCSCTL1&=~XT2OFF; //开启XT2振荡器 BCSCTL2|=SELM_2+SELS; //选择MCLK时钟源为XT2CLK;选择SMCLK时钟源为XT2CLK do { IFG1&=~OFIFG; for(i=0;i<100;i++) _NOP(); } while((IFG1&OFIFG)!=0); IFG1&=~OFIFG; }

#include #include "clock.h" #define keyin (P1IN & 0x03)uchar KeyVal = 0; // 按键的键值uchar i=0;void delay(void);int main( void ){ // Stop watchdog timer to prevent time out reset WDTCTL = WDTPW + WDTHOLD; Int_Clk(); P1IES = 0x03; // P1.0~P1.3选择下降沿中断 P1IE = 0x03; // 打开中断使能 P1DIR &=~ (BIT0+BIT1); //设置P1.0~P1.3为输入状态 P2DIR = 0xff; P2OUT = 0xff; _EINT(); //打开全局中断控制位 while(1) { switch(KeyVal) //转换键值 { case 1:P2OUT&=~BIT0;KeyVal=0;break; case 2:P2OUT&=~BIT1;KeyVal=0;break; case 3:P2OUT&=~BIT2;KeyVal=0;break; default:break; } delay(); delay(); delay(); delay(); delay(); delay(); P2OUT = 0xff; } return 0;}/*******************************************函数名称:delay功 能:用于消抖的延时参 数:无返回值 :无********************************************/void delay(void){ uint tmp; for(tmp = 12000;tmp > 0;tmp--);}/*******************************************函数名称:PORT1_ISR 功 能:P1端口的中断服务函数参 数:无返回值 :无********************************************/#pragma vector=PORT1_VECTOR__interrupt void PORT1_ISR(void){ switch(P1IFG) { case 0x01: if(keyin == 0x02) //è?1?ê?μúò-°′?ü±?°′?? { delay(); if(keyin == 0x02) { while(keyin != 0x03); //μè′y°′?ü·??a KeyVal = 1; P1IFG = 0; break; } } case 0x02: if(keyin == 0x01) //è?1?ê?μú?t??°′?ü±?°′?? { delay(); if(keyin == 0x01) { while(keyin != 0x03); //μè′y°′?ü·??a KeyVal = 2; P1IFG = 0; break; } } default:P1IFG = 0;break; } }

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:使用小程序容器技术快速构建智能电视应用平台
下一篇:小程序容器技术,加速工业互联网平台建设
相关文章

 发表评论

暂时没有评论,来抢沙发吧~