这个程序是正对430f149,开始学习这款单片机,由于我需要参数一个频率在100K~200K之间的频率,所以就采用外部晶振。。由于最开始设置没对,时钟没信号输出。最后发现不能设置LPM3 ,并且后面应该有个循环。当修改之后,就能正常的工作!
程序比较短,就附在后面了
#include <msp430x14x.h>
#include "BoardConfig.h"
/****************主函数****************/
void main(void)
{
unsigned int i;
WDTCTL = WDTPW + WDTHOLD; //关闭看门狗
/*------选择系统主时钟为8MHz-------*/
BCSCTL1 &= ~XT2OFF; // 打开XT2高频晶体振荡器
do
{
IFG1 &= ~OFIFG; //清除晶振失败标志
for (i = 0xFF; i > 0; i--); // 等待8MHz晶体起振
}
while ((IFG1 & OFIFG)); // 晶振失效标志仍然存在?
BCSCTL2 |= SELM_2+SELS; //使MCLK = XT2
BoardConfig(0xf0); //关闭数码管和电平转换,打开流水灯
CCTL0 = CCIE; //使能CCR0中断
CCR0 = 3; //设定周期0.5S
TACTL |= TASSEL_2 + ID_0 + MC_1 ; //定时器A的时钟源选择ACLK,增计数模式
P2DIR = 0xff; //设置P2口方向为输出
P2OUT = 0xff;
_EINT(); //使能全局中断
// LPM3; //CPU进入LPM3模式
while(1);
// {}
}
/*******************************************
函数名称:Timer_A
功 能:定时器A的中断服务函数
参 数:无
返回值 :无
********************************************/
#pragma vector = TIMERA0_VECTOR
__interrupt void TimerA_ISR(void)
{
P2OUT ^= 0xff; //P2口输出取反
}
用户1695998 2013-1-25 15:36