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