📄 test_int.c
字号:
#include "msp430x14x.h"
/* 初始化P1口 */
int g=0;
int j=0;
void Iint_Port1(void)
{
P1DIR&=~BIT7; //设置为输入方向
P1SEL&=~BIT7; //设置为普通I/O口功能
P1IES|=BIT7; //选择下降沿触发
P1IE|=BIT7; //打开中断允许
P1IFG=0;
}
void Iint_OSCF(void)
{
int i;
BCSCTL1=0X04; //ACLK来源于LFXT1低频模式,其频率为32K,XT2开启
BCSCTL2=0X88; //MCLK与SMCLK均来源于XT2,分频系数为1,频率为8M
do
{
IFG1 &= ~OFIFG; // Clear OSCFault flag
for (i = 0xFF; i > 0; i--); // Time for flag to set
}
while ((IFG1 & OFIFG) != 0); // OSCFault flag still set?
}
void main(void)
{
WDTCTL=WDTPW+WDTHOLD; //关闭看门狗
Iint_OSCF();
Iint_Port1();
_EINT();
while(1)
{
_NOP();
}
}
//中断函数部分
#pragma vector=PORT1_VECTOR
__interrupt void P1_ISR(void) //P1口中断服务程序,横向测量接P1.6,纵向测量接P1.7,两者共用一个中断矢量
{
P1IFG=0;
g=g+1;
P3DIR|=0X02;
for(j=0;j<=20000;j++);
P3DIR&=0Xfd;
for(j=0;j<=20000;j++);
//P1IE|=BIT7;
//_DINT();
//_EINT();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -