新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 英飛凌XC2336 B單片機看門狗編程――基于DAVE2.0平臺

        英飛凌XC2336 B單片機看門狗編程――基于DAVE2.0平臺

        作者: 時間:2016-10-15 來源:網絡 收藏

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

        本文引用地址:http://www.104case.com/article/201610/307406.htm

        是Infineon的16位微控制器XC2000家族中的一員,它將功能和性能都得到擴展的C166SV2內核、功能強大的片上外設子系統和各種片上存儲器進行了完美結合。執行速度更快、穩定性更好、操作更簡單。

        1 特殊的看門狗工作模式

        英飛凌XC2336 B單片機看門狗編程——基于DAVE2.0平臺

        1.1 正常模式

        正常模式是應用復位或內部應用復位后的缺省模式。只有當執行EN指令時,才能從禁用模式進入正常模式。

        1.2 禁用模式

        對于完全不需要功能的應用,可采用禁用模式。執行指令DIS進入禁用模式:若CPUCON1.WDTCTL=0,在初始化結束前執行該指令;若CPUCON1.WDTCTL=1,可在任意時刻執行該指令。

        1.3 預警模式

        檢測到看門狗錯誤時,始終進入預警模式。若正常模式下定時器溢出,則進入預警模式。此時,WDT不會立即請求對芯片復位,它會首先發送預警輸出,確保系統在復位之前進入安全的狀態。接收到預警信號后,CPU和系統完成當前掛起的操作請求,不產生新的操作請求。通過中斷告知CPU出現預警,CPU可通過寄存器INTSTAT識別WDT預警中斷。完成所有掛起的操作后,在復位之前CPU應執行IDLE指令以終止所有進一步的操作。

        1.4 恒復位

        如果看門狗引發兩次復位(應用或內部應用復位),則認為出現了嚴重的系統故障,保持由RSTCON1.WDT配置的復位狀態,直至發生上電復位。例如,當器件和外部存儲器的連接丟失,以致于無法完成系統初始化時,器件會被周期性復位。這種雙復位檢測方式可防止各種情況引起的器件周期性復位。

        該單片機WDT與其它單片機WDT不同的地方之一就是引入了預警模式中斷,這使軟件可以在發生異常復位之前處理一些必要的數據;另一個不同的地方就是引入了恒復位狀態,使單片機在發生嚴重的系統故障時,各端口保持非輸出狀態,同時不產生周期性復位。

        如果在某些場合不希望單片機出現恒復位狀態,或者不希望單片機在兩次WDT復位后就進入恒復位狀態,則軟件必須在WDT預警模式中斷中寫入代碼。文章后面會有實例說明。

        2 單片機初始化結束后WDT有效的工作方式

        如圖2所示,如果在DAVE軟件的WDT初始化選擇中選中該項,則軟件在復位初始化結束后,WDT應該使能。

        英飛凌XC2336 B單片機看門狗編程——基于DAVE2.0平臺

        但是,如果不在DAVE自動生成的工程文件中,將WDT選項勾選的話,WDT將永遠無效。即使你已經勾選了該選項,下次DAVE自動修改工程文件時該選項也會被清除。因此在該工作方式下,軟件中可以沒有啟動WDT的語句,但每次用DAVE自動修改工程文件時都要重新勾選。該選項在工程文件的Start_V3.A66中,位置如圖3所示。

        在這種工作方式下,在DAVE自動生成的工程文件中,對WDT來說只有如下語句起作用:

        _srvwdt_();//服務WDT

        3 WDT始終有效的工作方式

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

        英飛凌XC2336 B單片機看門狗編程——基于DAVE2.0平臺

        在這種工作方式下,應該在DAVE自動生成的工程文件中寫入如下語句:

        _diswdt_(); //禁止WDT

        _asm{ENWDT;} //使能WDT

        _srvwdt_(); //服務WDT

        4 去掉WDT恒復位狀態的方法

        在以上兩種WDT的工作方式下,當發生兩次WDT復位時,單片機都會進入恒復位狀態。如果想要去除這種狀態,那就必須首先開通WDT預警中斷。

        英飛凌XC2336 B單片機看門狗編程——基于DAVE2.0平臺

        然后在預警中斷中寫入如下代碼。

        英飛凌XC2336 B單片機看門狗編程——基于DAVE2.0平臺

        5 結束語

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



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 永川市| 资溪县| 长垣县| 保定市| 满洲里市| 郁南县| 汤阴县| 武威市| 吉安县| 巴中市| 乌恰县| 张掖市| 班戈县| 岗巴县| 托里县| 嘉黎县| 彩票| 承德县| 彰武县| 盖州市| 莆田市| 抚松县| 敖汉旗| 康保县| 阿荣旗| 综艺| 眉山市| 山东省| 连云港市| 罗城| 乃东县| 虹口区| 日照市| 左云县| 奉化市| 崇州市| 锦屏县| 桦甸市| 诏安县| 白河县| 裕民县|