?? main.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 + -