找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3927|回復: 0
打印 上一主題 下一主題
收起左側

MSP430單片機時鐘錯誤中斷 程序

[復制鏈接]
跳轉到指定樓層
樓主
ID:108615 發(fā)表于 2016-3-14 20:18 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
本程序是《MSP430系列單片機系統(tǒng)工程設計與實踐》書里面的源碼,(包含工程文件 )完整例程下載:http://www.torrancerestoration.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++);                   // 略延遲,等待倍頻器輸出時鐘穩(wěn)定
  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)                    //如果是時鐘錯誤引發(fā)的NMI中斷   
  25.   {
  26.     P2OUT |= BIT0;                    //將P2.0置高(點亮LED)
  27.     IFG1 &=~ OFIFG;                   //清除時鐘錯誤標志
  28.   }
  29. }
復制代碼



分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表