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

📄 main.c

📁 MSP430系列单片机资料-7册-46.3M-pdf.zip
💻 C
字号:
/*****************************************************************************\
文件名:main.c
描述:用于MSP430F149。
      定时器B产生大约1ms的定时,使主程序退出低功耗模式。主程序执行一遍流程,再
      次进入休眠,等待下一次被唤醒。
      中断TIME_FA次后,改变定时器的定时时间。
      每次中断的时候翻转P4.1脚的电平,使LED熄灭或者点亮。
版本:1.0	2004-9-10
\*****************************************************************************/

#include <MSP430x14x.h>
#include "df_timerb.h"

void InitSys(); 		//初始化

#define TIME_FA 100   		//定时中断产生如此次数后,改变定时时间
unsigned int Cnt=TIME_FA; 	//中断次数记录
unsigned int TimeZhi=1;		//定时时间

#define LED_DIR P4DIR 		//定义LED输出管脚
#define LED_OUT P4OUT
#define LED_IO BIT1
unsigned char Led=0; 		//记录LED是亮还是灭。0:灭  其它:亮

int main( void )
{
	unsigned char q0;
	unsigned char *pq0;
  	WDTCTL = WDTPW + WDTHOLD;     //关闭看门狗
  	InitSys();							//初始化
start:
	if(Cnt!=0)
		Cnt--;
	else
	{
		Cnt=TIME_FA;
		if(TimeZhi<0xFFFF)			//改变定时器的定时时间
			TimeZhi++;
		else
			TimeZhi=1;

		SetTime(TimeZhi);			//设置定时时间
		Led = !Led;
		if(Led==0)
			LED_OUT &= ~LED_IO; 		//熄灭LED
		else
			LED_OUT |= LED_IO; 		//点亮LED
	}

	LPM3;    							//进入低功耗模式
	goto start;
}

/*****************************************************************************
系统初始化
******************************************************************************/
void InitSys()
{
   unsigned int iq0;

   BCSCTL1&=~XT2OFF;     						//打开XT2振荡器
   do
   {
 		IFG1 &= ~OFIFG;							// 清除振荡器失效标志
 		for (iq0 = 0xFF; iq0 > 0; iq0--);	// 延时,等待XT2起振
 	}
 	while ((IFG1 & OFIFG) != 0);				// 判断XT2是否起振

	BCSCTL2 =SELM_2;								//选择MCLK为XT2

	LED_DIR |= LED_IO;

	TimerBInit();									//定时器B初始化
	SetTime(TimeZhi);								//设置定时时间
	GotimeDfB(100);								//打开定时器
	_EINT();	//打开全局中断控制,若不需要打开,可以屏蔽本句
}

⌨️ 快捷键说明

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