新手,用的EXP430F5529B_v0.0的开发板,想对外部输入的方波进行计数,P2.1引脚输入方波,用TA1外部计数,下升沿触发,用手或者金属碰到P2.1引脚就会不停的触发,使得计数值一直增加,是什么原因啊?
附上代码:
#include <msp430f5529.h>
#include "Dogs102x6.h"
char *strrev(char *str);
char *itoa(int n, char *s, int b);//数值转字符串
unsigned int i=0;
int count=0;
char str1[8];
void main()
{
WDTCTL=WDTPW+WDTHOLD; //关闭看门狗
LCD_Init();
P2SEL|=BIT1; //P2.1作为捕获模块功能的输入端输入方波
P2DIR&=~BIT1;//输入方向
P2IN&=~BIT1;//
P2OUT&=~BIT1;//下拉电阻
P2REN=1;
TA1CCTL2&=~(CCIS1+CCIS0); // 捕获源为外部引脚TA
TA1CCTL2|=CM_2+SCS+CAP+CCIE; //下降沿捕获,同步捕获,工作在捕获模式
TA1CTL|=TASSEL_1+MC_2+TACLR+ID_3+0x0002; //选择时钟ACLK
_EINT();
while(1);
}
#pragma vector=TIMER1_A1_VECTOR
__interrupt void TimerA1(void)
{
if(TA1IV==4)//2.1引脚引发的中断
count++;//计数值加一
itoa(count, str1, 10);
Dogs102x6_clearScreen();
Dogs102x6_stringDraw(1, 30, str1, 0);
}