標(biāo)題: MSP430單片機(jī)時(shí)鐘錯(cuò)誤中斷 程序 [打印本頁(yè)]

作者: 51hei單片    時(shí)間: 2016-3-14 20:18
標(biāo)題: MSP430單片機(jī)時(shí)鐘錯(cuò)誤中斷 程序
本程序是《MSP430系列單片機(jī)系統(tǒng)工程設(shè)計(jì)與實(shí)踐》書里面的源碼,(包含工程文件 )完整例程下載:http://www.torrancerestoration.com/bbs/dpj-46245-1.html


關(guān)于本程序的詳細(xì)解說大家可以點(diǎn)擊上圖下載電子書
時(shí)鐘錯(cuò)誤中斷代碼如下:
  1. #include "msp430x42x.h"             /*430單片機(jī)寄存器頭文件*/
  2. void main( void )                       // 主程序
  3. { int i;
  4.   WDTCTL=WDTPW+WDTHOLD;  //停止看門狗
  5.   FLL_CTL0|=XCAP18PF;          //配置晶振負(fù)載電容
  6.   FLL_CTL0 &=~ XTS_FLL;                     // 設(shè)置振蕩器類型為低頻  (可省略)
  7.   FLL_CTL0 |=  XCAP18PF;                     // 設(shè)置晶振匹配電容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設(shè)為輸出
  11.   P2OUT &=~BIT0;                        // P2.0設(shè)為低電平(LED滅)
  12.   for(i=0;i<100;i++);                   // 略延遲,等待倍頻器輸出時(shí)鐘穩(wěn)定
  13.   IFG1 &=~ OFIFG;                       // 清除上電過程引起時(shí)鐘錯(cuò)誤標(biāo)志
  14.   IE1|=OFIE;                            // 打開時(shí)鐘錯(cuò)誤中斷
  15.   
  16.   while(1)
  17.   {
  18.      //...do some thing...              // 正常工作的程序                           
  19.   }
  20. }

  21. #pragma vector = NMI_VECTOR                  //NMI中斷源
  22. __interrupt void NMI_ISR(void)        //聲明一個(gè)中斷服務(wù)程序,名為NMI_ISR()
  23. {
  24.   if(IFG1 & OFIFG)                    //如果是時(shí)鐘錯(cuò)誤引發(fā)的NMI中斷   
  25.   {
  26.     P2OUT |= BIT0;                    //將P2.0置高(點(diǎn)亮LED)
  27.     IFG1 &=~ OFIFG;                   //清除時(shí)鐘錯(cuò)誤標(biāo)志
  28.   }
  29. }
復(fù)制代碼








歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1