Configuration Bits 設(shè)置
Configuration Bits 設(shè)置
編寫程序,必須要對環(huán)境條件進行設(shè)置(Configuration Bits),比如WDT看門狗、晶振類型、代碼保護、低壓編程等等,每一種芯片的項目不一樣,有多有少。正確設(shè)置非常重要,否則容易誤燒芯片造成損失。
開發(fā)工具編譯器一般都可以采用菜單方式設(shè)置,在編譯程序時將設(shè)置字一并完成,燒寫芯片同時完成CONFIG的燒入。然而,有時候編譯的HEX文件并不包含CONFIG,因此,在程序代碼中直接包含CONFIG設(shè)置是一種好習(xí)慣(這樣編譯的HEX就會包含CONFIG設(shè)置)。
__CONFIG _CP_OFF & _WDT_ON & _BODEN_ON & _PWRTE_ON & _RC_OSC
上面是CONFIG的一種寫法,注意CONFIG前面是2個下劃線“_”,中間沒有空格,而且不能在行的第一列位置,至少空一格。項目的定義可以在頭文件中找到(*.inc)。每種芯片具體設(shè)置不完全一樣。
如果你對如何采用上述方法設(shè)置CONFIG還是覺得麻煩,教你一個好方法:
在開發(fā)工具軟件(比如MPLAB-IDE)的CONFIG設(shè)置菜單里先選擇好項目,確認設(shè)置正確。這時會有一個定義字(16進制,隨著設(shè)置不同而改變),例如3FFFH,復(fù)制,再粘貼到__CONFIG后,比如
__CONFIG 3FFFH
就可以達到同樣效果了。
以上是在匯編代碼中的寫法,對于C代碼,最后要加上“;”,定義的內(nèi)容用括號:
__CONFIG (0x3FFF);
__CONFIG (_CP_OFF & _WDT_ON & _BODEN_ON & _PWRTE_ON & _RC_OSC);
補充:
對于debugger模式和programmer模式,必須注意不同之處是debugger模式下會自動打開調(diào)試狀態(tài)(_DEBUG_ON,對于不同的芯片可能在不同的配置位)。因此我們應(yīng)該選擇programmer模式的Configuration Bits。比如對于PIC16F877A,programmer模式的Configuration Bits為3F3AH,debugger模式的Configuration Bits則為F73AH,我們在程序中必須寫:
__CONFIG 3F3AH
如果采用debugger模式的Configuration Bits,在programmer模式就不允許編程了。