当前位置:首页 > 单片机 > 单片机
[导读] /******************************************************************** ** File : TimerA.c | Timer Interrupt | ** Version : 1.0 ** Description:

 

/******************************************************************
**
** File : TimerA.c | Timer Interrupt |
** Version : 1.0
** Description: TimerA Interrupt
** Author : LightWu
** Date : 2013-4-16
**
*******************************************************************/


#include "MSP430X24X.h"


int Count;


void main(void)
{
// Stop watchdog timer to prevent time out reset
WDTCTL = WDTPW + WDTHOLD; //关狗

P4DIR = BIT0|BIT1|BIT2|BIT3; //设置为输出
P4SEL = 0;

P1IE |= 0x08; // P1.3 interrupt enabled
P1IES |= 0x08; // P1.3 Hi/lo edge
P1IFG &= ~0x08; // P1.3 IFG cleared


//__bis_SR_register(LPM4_bits + GIE); // Enter LPM4 w/interrupt

CCTL0 = CCIE; // CCR0 interrupt enabled
CCR0 = 10;
TACTL = TASSEL_2 + MC_2; // SMCLK, contmode


_BIS_SR(LPM0_bits + GIE); // Enter LPM0 w/ interrupt

while(1)
{
if( 10 < Count )
{
Count = 0;

P4OUT ^= 0x0F; //电平翻转
}
}

}


// Port 1 interrupt service routine
#pragma vector=PORT1_VECTOR
__interrupt void Port_1(void)
{
P4OUT ^= 0x0F; //电平翻转

P1IFG &= ~0x08; // P1.3 IFG cleared,注意清标志位,否则会一直进入中断
}


// Timer A0 interrupt service routine
#pragma vector=TIMERA0_VECTOR
__interrupt void Timer_A (void)
{
//P4OUT ^= 0x0F; //电平翻转

Count++;
if( 10 < Count )
{
__bic_SR_register_on_exit(LPM0_bits); // Exit LPM0


}

}

 

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
换一批
延伸阅读
关闭