|
初始化代码供你参考下。
主程序的循环是不对的,你可以多读两遍,只要输出为高了,一直在执行代码。
- int main(void)
- {
- WDTCTL = WDTPW | WDTHOLD; //关闭看门狗
-
- //GPIO口初始化配置;
- P1DIR |= BIT2; //P1.2作为输出;
- P1OUT |= BIT2; //P1.2输出高电平;
- P1DIR &= ~BIT3; //P1.3接按键,作为输入
- P1REN |=BIT3; //=1,启用内部电阻;
- P1OUT |=BIT3; //=1,配置成上拉电阻
-
- P1IES |=BIT3; //下降沿中断
- P1IFG &=~BIT3; //清除中断标志位
- P1IE |=BIT3; //使能中断
- _BIS_SR(GIE); //开启全局中断
- while (1)
- {
- if((P1OUT&BIT2)==0)
- {
- TA0CTL = TASSEL_1 + MC_1 + TACLR;
- TA0CCTL0 = CCIE;
- TACCR0 = 32768; //30秒计时
- _BIS_SR(GIE);
- }
- else
- __no_operation();
- }
- }
复制代码 |
|