專注差異化嵌入式產(chǎn)品解決方案 給智能產(chǎn)品定制注入靈魂給予生命
提供開發(fā)工具、應(yīng)用測(cè)試 完善的開發(fā)代碼案例庫(kù)分享
從全面的產(chǎn)品導(dǎo)入到強(qiáng)大技術(shù)支援服務(wù) 全程貼心伴隨服務(wù),創(chuàng)造無限潛能!
提供新的芯片及解決方案,提升客戶產(chǎn)品競(jìng)爭(zhēng)力
提供最新的單片機(jī)資訊,行業(yè)消息以及公司新聞動(dòng)態(tài)
Configuration Bits 設(shè)置
編寫程序,必須要對(duì)環(huán)境條件進(jìn)行設(shè)置(Configuration Bits),比如WDT看門狗、晶振類型、代碼保護(hù)、低壓編程等等,每一種芯片的項(xiàng)目不一樣,有多有少。正確設(shè)置非常重要,否則容易誤燒芯片造成損失。
開發(fā)工具編譯器一般都可以采用菜單方式設(shè)置,在編譯程序時(shí)將設(shè)置字一并完成,燒寫芯片同時(shí)完成CONFIG的燒入。然而,有時(shí)候編譯的HEX文件并不包含CONFIG,因此,在程序代碼中直接包含CONFIG設(shè)置是一種好習(xí)慣(這樣編譯的HEX就會(huì)包含CONFIG設(shè)置)。
__CONFIG _CP_OFF & _WDT_ON & _BODEN_ON & _PWRTE_ON & _RC_OSC
上面是CONFIG的一種寫法,注意CONFIG前面是2個(gè)下劃線“_”,中間沒有空格,而且不能在行的第一列位置,至少空一格。項(xiàng)目的定義可以在頭文件中找到(*.inc)。每種芯片具體設(shè)置不完全一樣。
如果你對(duì)如何采用上述方法設(shè)置CONFIG還是覺得麻煩,教你一個(gè)好方法:
在開發(fā)工具軟件(比如MPLAB-IDE)的CONFIG設(shè)置菜單里先選擇好項(xiàng)目,確認(rèn)設(shè)置正確。這時(shí)會(huì)有一個(gè)定義字(16進(jìn)制,隨著設(shè)置不同而改變),例如3FFFH,復(fù)制,再粘貼到__CONFIG后,比如
__CONFIG 3FFFH
就可以達(dá)到同樣效果了。
以上是在匯編代碼中的寫法,對(duì)于C代碼,最后要加上“;”,定義的內(nèi)容用括號(hào):
__CONFIG (0x3FFF);
__CONFIG (_CP_OFF & _WDT_ON & _BODEN_ON & _PWRTE_ON & _RC_OSC);
補(bǔ)充:
對(duì)于debugger模式和programmer模式,必須注意不同之處是debugger模式下會(huì)自動(dòng)打開調(diào)試狀態(tài)(_DEBUG_ON,對(duì)于不同的芯片可能在不同的配置位)。因此我們應(yīng)該選擇programmer模式的Configuration Bits。比如對(duì)于PIC16F877A,programmer模式的Configuration Bits為3F3AH,debugger模式的Configuration Bits則為F73AH,我們?cè)诔绦蛑斜仨殞懀?/span>
__CONFIG 3F3AH
如果采用debugger模式的Configuration Bits,在programmer模式就不允許編程了。