<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > MSP430學(xué)習(xí)小結(jié)

          MSP430學(xué)習(xí)小結(jié)

          作者: 時(shí)間:2016-11-25 來(lái)源:網(wǎng)絡(luò) 收藏
          看門(mén)狗定時(shí)器用來(lái)防止程序因供電電源、空間電磁干擾或其它原因引起的強(qiáng)烈干擾噪聲而跑飛的事故。在很多單片機(jī)中都內(nèi)置了看門(mén)狗,看門(mén)狗本身是一個(gè)定時(shí)器,當(dāng)定時(shí)器溢出時(shí)即進(jìn)行系統(tǒng)復(fù)位,因此需要在程序中對(duì)看門(mén)狗定時(shí)器進(jìn)行清零,即常說(shuō)的喂狗。

          由于我用過(guò)AVR的單片機(jī),和AVR的相比,MSP430的看門(mén)狗要靈活的多,首先默認(rèn)看門(mén)狗是開(kāi)著的,因此如果不使用看門(mén)狗的話要關(guān)閉,指令如下:
          WDTCTL = WDTPW + WDTHOLD
          如果打開(kāi)看門(mén)狗則需要在程序中清零,指令如下:
          WDTCTL=WDTPW+WDTCNTCL
          這只是基本的應(yīng)用,430的看門(mén)狗要稍微復(fù)雜一些,首先從IAR的頭文件中看看定義了幾種工作狀態(tài):

          本文引用地址:http://www.ex-cimer.com/article/201611/321221.htm


          2.WDT通過(guò)SSEL 和IS0 IS1 3位可以確定與8種時(shí)鐘源相關(guān)的時(shí)間(ACLK=32768Hz,SMCLK=1MHz)
          SMCLK=1MH(對(duì)應(yīng)8種)
          WDT_MDLY_32
          WDT_MRST_32
          WDT_MDLY_8
          WDT_MRST_8
          WDT_MDLY_0_5
          WDT_MRST_0_5
          WDT_MDLY_0_064
          WDT_MRST_0_064
          ACLK=32768Hz(對(duì)應(yīng)8種)
          WDT_ADLY_1000
          WDT_ARST_1000
          WDT_ADLY_250
          WDT_ARST_250
          WDT_ADLY_16
          WDT_ARST_16
          WDT_ADLY_1_9
          WDT_ARST_1_9

          在頭文件中查得:



          代碼解釋:

          WDTCTL =WDT_ARST_1000;

          在頭文件中看到WDT_ARST_1000的定義為:(WDTPW+WDTCNTCL+WDTSSEL0+WDTIS2)

          即上一條指令執(zhí)行的是WDTCTL= WDTPW+WDTCNTCL+WDTSSEL0+WDTIS2。

          WDTCTL設(shè)置每條命令中必有WDTPW+..因?yàn)閃DTPW代表寫(xiě)WDTCTL的時(shí)候高八位寫(xiě)05Ah,讀的時(shí)候高八位為069h,否則觸發(fā)PUC。

          WDTCNTCL:看門(mén)狗計(jì)數(shù)器清零.

          WDTSSEL0:表示W(wǎng)DTSSEL第0位置1,既0001.

          WDTIS2: 表示W(wǎng)DTIS2第2位置1,既0100.

          設(shè)置的含義看MSP4305438 PDF文檔


          從頭文件的定義中可以看出主要有兩種方式,一種就是當(dāng)做普通的定時(shí)器使用,一種才是作為看門(mén)狗,另外就是時(shí)鐘源可選,選擇8M或者32K的晶振來(lái)獲得不同的延時(shí),通過(guò)上面可以看出看門(mén)狗定時(shí)器最大的時(shí)間可以到1S,在程序中可以靈活的利用看門(mén)狗定時(shí)器實(shí)現(xiàn)想要的功能。

          下面介紹兩個(gè)典型應(yīng)用:
          1、在動(dòng)態(tài)數(shù)碼管顯示中的應(yīng)用,具體代碼可以參考我之前的筆記,部分代碼如下:
          WDTCTL = WDT_ADLY_1_9; // 設(shè)置內(nèi)部看門(mén)狗工作在定時(shí)器模式,1.9ms中斷一次
          //可以去看頭文件中具體的配置,這里使用的手表晶振64分頻計(jì)算可得是1.9ms
          SFRIE1 |= WDTIE; // 使能看門(mén)狗中斷

          __interrupt void watchdog_timer(void)
          {
          }
          這個(gè)程序主要是將看門(mén)狗定時(shí)器當(dāng)做普通定時(shí)器使用,1.9ms剛好適合動(dòng)態(tài)掃描間隔,在看門(mén)狗中斷中對(duì)數(shù)碼管進(jìn)行動(dòng)態(tài)掃描,這樣使用相對(duì)于開(kāi)一個(gè)定時(shí)器來(lái)說(shuō)要有所方便。因此在需要的定時(shí)與看門(mén)狗定時(shí)器的幾個(gè)時(shí)間相同時(shí)可以考慮使用看門(mén)狗。
          2、普通延時(shí)
          WDTCTL = WDT_ADLY_1000; //間隔定時(shí)器,定時(shí)1000ms
          //延時(shí)2s
          for(i = 0; i < 3; i++)
          {

          IFG1 &= ~WDTIFG;
          while(!(IFG1 & WDTIFG));
          IFG1 &= ~WDTIFG;
          }
          這個(gè)程序同樣是將看門(mén)狗當(dāng)普通定時(shí)器使用,在主程序中讀取中斷標(biāo)志位,實(shí)現(xiàn)延時(shí)效果,上面的程序?yàn)槭裁词茄訒r(shí)2S自己分析。

          這里面舉了兩個(gè)例子,是最近學(xué)習(xí)的一點(diǎn)小體會(huì),當(dāng)然還是不能忘了看門(mén)狗的本能工作,在程序較為簡(jiǎn)單時(shí)可以考慮使用看門(mén)狗定時(shí)器簡(jiǎn)化設(shè)計(jì)。另外還有一點(diǎn)覺(jué)得比較重要的是雖然頭文件中對(duì)寄存器都有了很好的定義,但是還是很有必要對(duì)著頭文件和寄存器把主要的寄存器看一面,弄清每一種工作模式的使用方式和注意點(diǎn)。

          http://www.61ic.com/Article/MSP430/MSP430/201108/36308.html

          關(guān)于軟件看門(mén)狗
          2008-08-01 08:36

          關(guān)于軟件看門(mén)狗

          Watch Dog 看門(mén)狗是一個(gè)很重要的資源,他能夠有效的防止系統(tǒng)進(jìn)入死循環(huán)或者程序跑飛。工作原理:在系統(tǒng)運(yùn)行以后也就啟動(dòng)了看門(mén)狗的計(jì)數(shù)器,看門(mén)狗就開(kāi)始自動(dòng)計(jì)數(shù),如果到了一定的時(shí)間還不去清看門(mén)狗,那么看門(mén)狗計(jì)數(shù)器就會(huì)溢出從而引起看門(mén)狗中斷,造成系統(tǒng)復(fù)位。

          看門(mén)狗是類(lèi)似與硬件保護(hù)卡之類(lèi).保護(hù)硬盤(pán)數(shù)據(jù)的.

          是單片機(jī)一個(gè)復(fù)位芯片,在單片機(jī)遇到異常情況之下自動(dòng)復(fù)位!~~

          看門(mén)狗是用來(lái)看家的,作用是保護(hù)你家的財(cái)產(chǎn)不丟失,
          看門(mén)狗電路是用來(lái)看著你的CPU的,作用是不讓你的程序丟失。

          看門(mén)狗實(shí)際上是一個(gè)計(jì)數(shù)器,一般給看門(mén)狗一個(gè)大數(shù),程序開(kāi)始運(yùn)行后看門(mén)狗開(kāi)始倒計(jì)數(shù)。如果程序運(yùn)行正常,過(guò)一段時(shí)間CPU應(yīng)發(fā)出指令讓看門(mén)狗復(fù)位,重新開(kāi)始倒計(jì)數(shù)。如果看門(mén)狗減到0就認(rèn)為程序沒(méi)有正常工作,強(qiáng)制整個(gè)系統(tǒng)復(fù)位。

          一般是為了程序進(jìn)入死循環(huán)或死機(jī)!有的單片機(jī)不需外加看門(mén)狗電路(PIC)。

          看門(mén)狗定時(shí)器對(duì)微控制器提供了獨(dú)立的保護(hù)系統(tǒng).當(dāng)系統(tǒng)出現(xiàn)故障時(shí),在可選的超時(shí)周期之后,看門(mén)狗將以RESET信號(hào)作出響應(yīng).像x25045就可選超時(shí)周期為1.4秒,600毫秒,200毫秒三種.當(dāng)你的程序死機(jī)時(shí),x25045就會(huì)使單片機(jī)復(fù)位.


          上一頁(yè) 1 2 下一頁(yè)

          關(guān)鍵詞: MSP430學(xué)習(xí)小

          評(píng)論


          技術(shù)專區(qū)

          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();