⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ta.c

📁 MSP430z_f247.rar
💻 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 + -