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

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 英飛凌XC2336 B單片機(jī)看門狗編程――基于DAVE2.0平臺(tái)

          英飛凌XC2336 B單片機(jī)看門狗編程――基于DAVE2.0平臺(tái)

          作者: 時(shí)間:2016-10-15 來(lái)源:網(wǎng)絡(luò) 收藏

          ——數(shù)字應(yīng)用工程師,出自科技。它能幫我們準(zhǔn)確而快速地進(jìn)行基于8位、16位或32位的嵌入式系統(tǒng)設(shè)計(jì)。由于的嵌入式為控制器的寄存器的數(shù)量非常大,大約有一千多個(gè)。所以對(duì)大量寄存器的初始化是一件相當(dāng)棘手的事,而有了的平臺(tái)就能很輕松地完成這些事情。同時(shí)還可完成的其它初始化工作,與Keil或、Tasking等編譯軟件實(shí)現(xiàn)鏈接,輕松完成嵌入式系統(tǒng)的軟件開(kāi)發(fā)工作。

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

          是Infineon的16位微控制器XC2000家族中的一員,它將功能和性能都得到擴(kuò)展的C166SV2內(nèi)核、功能強(qiáng)大的片上外設(shè)子系統(tǒng)和各種片上存儲(chǔ)器進(jìn)行了完美結(jié)合。執(zhí)行速度更快、穩(wěn)定性更好、操作更簡(jiǎn)單。

          1 特殊的看門狗工作模式

          英飛凌XC2336 B單片機(jī)看門狗編程——基于DAVE2.0平臺(tái)

          1.1 正常模式

          正常模式是應(yīng)用復(fù)位或內(nèi)部應(yīng)用復(fù)位后的缺省模式。只有當(dāng)執(zhí)行EN指令時(shí),才能從禁用模式進(jìn)入正常模式。

          1.2 禁用模式

          對(duì)于完全不需要功能的應(yīng)用,可采用禁用模式。執(zhí)行指令DIS進(jìn)入禁用模式:若CPUCON1.WDTCTL=0,在初始化結(jié)束前執(zhí)行該指令;若CPUCON1.WDTCTL=1,可在任意時(shí)刻執(zhí)行該指令。

          1.3 預(yù)警模式

          檢測(cè)到看門狗錯(cuò)誤時(shí),始終進(jìn)入預(yù)警模式。若正常模式下定時(shí)器溢出,則進(jìn)入預(yù)警模式。此時(shí),WDT不會(huì)立即請(qǐng)求對(duì)芯片復(fù)位,它會(huì)首先發(fā)送預(yù)警輸出,確保系統(tǒng)在復(fù)位之前進(jìn)入安全的狀態(tài)。接收到預(yù)警信號(hào)后,CPU和系統(tǒng)完成當(dāng)前掛起的操作請(qǐng)求,不產(chǎn)生新的操作請(qǐng)求。通過(guò)中斷告知CPU出現(xiàn)預(yù)警,CPU可通過(guò)寄存器INTSTAT識(shí)別WDT預(yù)警中斷。完成所有掛起的操作后,在復(fù)位之前CPU應(yīng)執(zhí)行IDLE指令以終止所有進(jìn)一步的操作。

          1.4 恒復(fù)位

          如果看門狗引發(fā)兩次復(fù)位(應(yīng)用或內(nèi)部應(yīng)用復(fù)位),則認(rèn)為出現(xiàn)了嚴(yán)重的系統(tǒng)故障,保持由RSTCON1.WDT配置的復(fù)位狀態(tài),直至發(fā)生上電復(fù)位。例如,當(dāng)器件和外部存儲(chǔ)器的連接丟失,以致于無(wú)法完成系統(tǒng)初始化時(shí),器件會(huì)被周期性復(fù)位。這種雙復(fù)位檢測(cè)方式可防止各種情況引起的器件周期性復(fù)位。

          該單片機(jī)WDT與其它單片機(jī)WDT不同的地方之一就是引入了預(yù)警模式中斷,這使軟件可以在發(fā)生異常復(fù)位之前處理一些必要的數(shù)據(jù);另一個(gè)不同的地方就是引入了恒復(fù)位狀態(tài),使單片機(jī)在發(fā)生嚴(yán)重的系統(tǒng)故障時(shí),各端口保持非輸出狀態(tài),同時(shí)不產(chǎn)生周期性復(fù)位。

          如果在某些場(chǎng)合不希望單片機(jī)出現(xiàn)恒復(fù)位狀態(tài),或者不希望單片機(jī)在兩次WDT復(fù)位后就進(jìn)入恒復(fù)位狀態(tài),則軟件必須在WDT預(yù)警模式中斷中寫入代碼。文章后面會(huì)有實(shí)例說(shuō)明。

          2 單片機(jī)初始化結(jié)束后WDT有效的工作方式

          如圖2所示,如果在DAVE軟件的WDT初始化選擇中選中該項(xiàng),則軟件在復(fù)位初始化結(jié)束后,WDT應(yīng)該使能。

          英飛凌XC2336 B單片機(jī)看門狗編程——基于DAVE2.0平臺(tái)

          但是,如果不在DAVE自動(dòng)生成的工程文件中,將WDT選項(xiàng)勾選的話,WDT將永遠(yuǎn)無(wú)效。即使你已經(jīng)勾選了該選項(xiàng),下次DAVE自動(dòng)修改工程文件時(shí)該選項(xiàng)也會(huì)被清除。因此在該工作方式下,軟件中可以沒(méi)有啟動(dòng)WDT的語(yǔ)句,但每次用DAVE自動(dòng)修改工程文件時(shí)都要重新勾選。該選項(xiàng)在工程文件的Start_V3.A66中,位置如圖3所示。

          在這種工作方式下,在DAVE自動(dòng)生成的工程文件中,對(duì)WDT來(lái)說(shuō)只有如下語(yǔ)句起作用:

          _srvwdt_();//服務(wù)WDT

          3 WDT始終有效的工作方式

          如圖4所示,如果在DAVE軟件的WDT初始化選擇中選中該項(xiàng),則WDT始終有效,隨時(shí)可以使能和禁止。

          英飛凌XC2336 B單片機(jī)看門狗編程——基于DAVE2.0平臺(tái)

          在這種工作方式下,應(yīng)該在DAVE自動(dòng)生成的工程文件中寫入如下語(yǔ)句:

          _diswdt_(); //禁止WDT

          _asm{ENWDT;} //使能WDT

          _srvwdt_(); //服務(wù)WDT

          4 去掉WDT恒復(fù)位狀態(tài)的方法

          在以上兩種WDT的工作方式下,當(dāng)發(fā)生兩次WDT復(fù)位時(shí),單片機(jī)都會(huì)進(jìn)入恒復(fù)位狀態(tài)。如果想要去除這種狀態(tài),那就必須首先開(kāi)通WDT預(yù)警中斷。

          英飛凌XC2336 B單片機(jī)看門狗編程——基于DAVE2.0平臺(tái)

          然后在預(yù)警中斷中寫入如下代碼。

          英飛凌XC2336 B單片機(jī)看門狗編程——基于DAVE2.0平臺(tái)

          5 結(jié)束語(yǔ)

          本文對(duì)XC2336B單片機(jī)WDT的特殊功能進(jìn)行了講解,并介紹了兩種工作方式。最后還用實(shí)際例程說(shuō)明了如何將XC2336B單片機(jī)WDT的特殊功能給去掉,使其能等同與一般單片機(jī)的看門狗一樣使用。這樣,編程人員就可以在讀EEPROM、調(diào)試和運(yùn)行等不同環(huán)境下熟練運(yùn)用該單片機(jī)的WDT了。



          關(guān)鍵詞: DAVE Infineon XC2336B 單片機(jī) WDT

          評(píng)論


          相關(guān)推薦

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

          關(guān)閉
          看屁屁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); })();