找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3390|回复: 0
收起左侧

MSP430单片机时钟错误中断 程序

[复制链接]
ID:108615 发表于 2016-3-14 20:18 | 显示全部楼层 |阅读模式
本程序是《MSP430系列单片机系统工程设计与实践》书里面的源码,(包含工程文件 )完整例程下载:http://www.51hei.com/bbs/dpj-46245-1.html


关于本程序的详细解说大家可以点击上图下载电子书
时钟错误中断代码如下:
  1. #include "msp430x42x.h"             /*430单片机寄存器头文件*/
  2. void main( void )                       // 主程序
  3. { int i;
  4.   WDTCTL=WDTPW+WDTHOLD;  //停止看门狗
  5.   FLL_CTL0|=XCAP18PF;          //配置晶振负载电容
  6.   FLL_CTL0 &=~ XTS_FLL;                     // 设置振荡器类型为低频  (可省略)
  7.   FLL_CTL0 |=  XCAP18PF;                     // 设置晶振匹配电容18pF左右
  8.   SCFQCTL = SCFQ_2M;                          // 倍频至2MHz(64倍频,2.09MHz)
  9.   SCFI0 |= FN_2 ;                              // DCO中心频率2MHz左右(1.3~12.1 MHz)
  10.   P2DIR |= BIT0;                        // P2.0设为输出
  11.   P2OUT &=~BIT0;                        // P2.0设为低电平(LED灭)
  12.   for(i=0;i<100;i++);                   // 略延迟,等待倍频器输出时钟稳定
  13.   IFG1 &=~ OFIFG;                       // 清除上电过程引起时钟错误标志
  14.   IE1|=OFIE;                            // 打开时钟错误中断
  15.   
  16.   while(1)
  17.   {
  18.      //...do some thing...              // 正常工作的程序                           
  19.   }
  20. }

  21. #pragma vector = NMI_VECTOR                  //NMI中断源
  22. __interrupt void NMI_ISR(void)        //声明一个中断服务程序,名为NMI_ISR()
  23. {
  24.   if(IFG1 & OFIFG)                    //如果是时钟错误引发的NMI中断   
  25.   {
  26.     P2OUT |= BIT0;                    //将P2.0置高(点亮LED)
  27.     IFG1 &=~ OFIFG;                   //清除时钟错误标志
  28.   }
  29. }
复制代码



回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表