📄 ta.c
字号:
# include "TA.h"
void TimerA_PORT_INIT(void)
{
//P1DIR |= BIT0| BIT1;
//P1OUT |= BIT0| BIT1;
//P1SEL |= BIT2| BIT3;
//P1DIR |= BIT2| BIT3;
}
void TimerA_INIT(void)
{
TACTL = TASSEL_2 + MC_1 |ID_3; //时钟源选用SMCLK;增计数模式
//8分频
TACTL |= TAIE; //使能溢出中断
TACCTL0 = CCIE; //TACCR0开中断允许
TACCR0 = 1000; //8MHZ8分频~1M,计数为1000us
/*
CCTL1 = OUTMOD_7;
TACCR1 = 200;
CCTL2 = OUTMOD_6;
TACCR2 = 200;*/
}
void TimerA_Device_INIT(void)
{
TimerA_PORT_INIT();
TimerA_INIT();
}
//TACCR0 CCIFG中断处理函数
#pragma vector=TIMERA0_VECTOR
__interrupt void Timer_A0(void)
{
//P1OUT ^= BIT0; //P10取反
}
//TACCR1和TACCR2 CCIFG与TA溢出中断TAIFG共用中断向量
#pragma vector=TIMERA1_VECTOR
__interrupt void Timer_A1(void)
{
switch( TAIV )
{
case 2: // TACCR1
break;
case 4: // TACCR2
break;
case 10: // Overflow
//P1OUT ^= BIT1; //1000us溢出一次
break;
}
}
void TA_Test(void)
{
P1DIR |= BIT1;
P1OUT |=BIT1;
TimerA_Device_INIT();
_EINT(); //全局中断使能
//_BIS_SR(LPM0_bits + GIE); //进入低功耗模式后后面的超级循环也
while(1) //不被执行
{
P1OUT^=BIT1;
Delay_nMS(500);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -