標(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ò)誤中斷代碼如下:
#include "msp430x42x.h" /*430單片機(jī)寄存器頭文件*/
void main( void ) // 主程序
{ int i;
WDTCTL=WDTPW+WDTHOLD; //停止看門狗
FLL_CTL0|=XCAP18PF; //配置晶振負(fù)載電容
FLL_CTL0 &=~ XTS_FLL; // 設(shè)置振蕩器類型為低頻 (可省略)
FLL_CTL0 |= XCAP18PF; // 設(shè)置晶振匹配電容18pF左右
SCFQCTL = SCFQ_2M; // 倍頻至2MHz(64倍頻,2.09MHz)
SCFI0 |= FN_2 ; // DCO中心頻率2MHz左右(1.3~12.1 MHz)
P2DIR |= BIT0; // P2.0設(shè)為輸出
P2OUT &=~BIT0; // P2.0設(shè)為低電平(LED滅)
for(i=0;i<100;i++); // 略延遲,等待倍頻器輸出時(shí)鐘穩(wěn)定
IFG1 &=~ OFIFG; // 清除上電過程引起時(shí)鐘錯(cuò)誤標(biāo)志
IE1|=OFIE; // 打開時(shí)鐘錯(cuò)誤中斷
while(1)
{
//...do some thing... // 正常工作的程序
}
}
#pragma vector = NMI_VECTOR //NMI中斷源
__interrupt void NMI_ISR(void) //聲明一個(gè)中斷服務(wù)程序,名為NMI_ISR()
{
if(IFG1 & OFIFG) //如果是時(shí)鐘錯(cuò)誤引發(fā)的NMI中斷
{
P2OUT |= BIT0; //將P2.0置高(點(diǎn)亮LED)
IFG1 &=~ OFIFG; //清除時(shí)鐘錯(cuò)誤標(biāo)志
}
}
復(fù)制代碼
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1