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

📄 df_timera.c

📁 MSP430系列单片机资料-7册-46.3M-pdf.zip
💻 C
字号:
/*****************************************************************************\
文件名:df_timera.c
描述:用于MSP430F149。
      定时器A定时,产生中断,使主程序退出低功耗模式。
      使用TACTL1
      工作模式:增计数模式
      时钟源:ACLK为32.768kHz
版本:1.0	2004-9-10
\*****************************************************************************/
#include <MSP430x14x.h>
#include <math.h>
#include "df_timera.h"
#include "dac12.h"

unsigned int iOut0=0;
unsigned int iOut1=0;

#define TIME_10MS 328
/*****************************************************************************
初始化
*****************************************************************************/
void TimerAInit()
{
	TACTL=TASSEL_1+TACLR+MC_0; //选择时钟源为ACLK
	SetTime(TIME_10MS);	   //设置定时时间
	TACCTL1 = CCIE;            //允许定时器中断
}

/*****************************************************************************
设置定时时间
ti:要定时的时间,与时钟源的频率有关
*****************************************************************************/
void SetTime(unsigned int ti)
{
	TACCR0=ti;		   //定时时间
}

/*****************************************************************************
打开或关闭定时器
doit: 0:停止   100:运行
*****************************************************************************/
void GotimeDfA(unsigned char doit)
{
	if(doit==100)
	{
		TACTL |= MC_1+TACLR;	//打开定时器
	}
	else if(doit==0)
	{
		TACTL &= ~MC0;		//关闭定时器
	}
}

/*****************************************************************************
定时器中断
*****************************************************************************/
#pragma vector=TIMERA1_VECTOR
__interrupt void Timer_A1(void)   
{
	unsigned int iq0;
	switch (__even_in_range(TAIV, 10))
	{
		case 2:
			//捕获/比较1中断
			//DAC通道0输出锯齿波
			if(iOut0<0xFFF)
				iOut0++;
			else
				iOut0=0;
			Dac12Write(iOut0,0);
			//DAC通道1输出正弦波
			if(iOut1<365)
				iOut1++;
			else
				iOut1=0;
			iq0=0xFFF*sin(iOut1);
			Dac12Write(iq0,1);
		break;
	}
	LPM3_EXIT;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -