标题:
MSP430单片机时钟错误中断 程序
[打印本页]
作者:
51hei单片
时间:
2016-3-14 20:18
标题:
MSP430单片机时钟错误中断 程序
本程序是《MSP430系列单片机系统工程设计与实践》书里面的源码,(包含工程文件 )完整例程下载:
http://www.51hei.com/bbs/dpj-46245-1.html
关于本程序的详细解说大家可以点击上图下载电子书
时钟错误中断代码如下:
#include "msp430x42x.h" /*430单片机寄存器头文件*/
void main( void ) // 主程序
{ int i;
WDTCTL=WDTPW+WDTHOLD; //停止看门狗
FLL_CTL0|=XCAP18PF; //配置晶振负载电容
FLL_CTL0 &=~ XTS_FLL; // 设置振荡器类型为低频 (可省略)
FLL_CTL0 |= XCAP18PF; // 设置晶振匹配电容18pF左右
SCFQCTL = SCFQ_2M; // 倍频至2MHz(64倍频,2.09MHz)
SCFI0 |= FN_2 ; // DCO中心频率2MHz左右(1.3~12.1 MHz)
P2DIR |= BIT0; // P2.0设为输出
P2OUT &=~BIT0; // P2.0设为低电平(LED灭)
for(i=0;i<100;i++); // 略延迟,等待倍频器输出时钟稳定
IFG1 &=~ OFIFG; // 清除上电过程引起时钟错误标志
IE1|=OFIE; // 打开时钟错误中断
while(1)
{
//...do some thing... // 正常工作的程序
}
}
#pragma vector = NMI_VECTOR //NMI中断源
__interrupt void NMI_ISR(void) //声明一个中断服务程序,名为NMI_ISR()
{
if(IFG1 & OFIFG) //如果是时钟错误引发的NMI中断
{
P2OUT |= BIT0; //将P2.0置高(点亮LED)
IFG1 &=~ OFIFG; //清除时钟错误标志
}
}
复制代码
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1