成人做爰黄A片免费视频网站野外,成人免费看片APP下载,成人做爰A片免费看黄冈白狐影院,成人做爰黄级A片免费看土方,成人做爰A片AAA毛真人,成人做爰A片免费看网站性晶

技術熱線: 4007-888-234

picc18單片機應用筆記—在源程序中設置配置位

更新時間: 2019-03-23
閱讀量:2903

十年專注單片機方案開發的方案公司英銳恩,分享picc18單片機應用筆記—在源程序中設置配置位。英銳恩現提供服務產品涉及主控芯片:8位單片機、16位單片機、32位單片機及各類運算放大器等。

筆者在使用picc18單片機進行基于PIC18F452單片機的軟件開發時,發現對于18系列的單片機,手動設置配置位非常麻煩,而且容易出錯,所以考慮在源程序中設定配置位,這樣編譯后,無論是用什么燒寫工具,都不需要再進行配置位的設定了。

     對于HI-TECH C18 , 配置字的設定通過宏 __CONFIG(n,x)來實現.
宏__CONFIG(n,x)的聲明在文件pic18.h中,各位元的聲明在對應芯片型號的頭文件中.18F452的例程如下:

//***************************************************************************************
        #include
//***************************************************************************************
//*The declaration of __CONFIG(n,x) is in pic18.h                                        *
//*The __CONFIG(n,x) directive defines configuration data within is in pic18fxx2.h                *
//***************************************************************************************
        __CONFIG(1,RC) ;
        __CONFIG(2,PWRTDIS & WDTPS1 & WDTEN ) ;
        __CONFIG(4,STVRDIS) ;
        
        void main(void) 

{
//your code
}
//*************************************************************************

在pic18.h中,__CONFIG(n,x)的聲明如下        
#define        __CONFIG(n, x)        asm("\tpsect config,class=CONFIG");\
                        asm("global config_word" ___mkstr(n)); \
                        asm("config_word" ___mkstr(n)":"); \
                        asm("\torg ("___mkstr(n)"-1)*2"); \
                        asm("\tdw "___mkstr(x))
部分在pic18.h中的聲明大體如下,具體請參考對應的頭文件。
// Configuration bit values
// Config. Register 1
#define OSCSEN                0xDFFF                // enable oscillator system clock
#define OSCSDIS                0xFFFF
// oscilator types
#define RCRA6                0xFFFF                // RC w/OSC2 config as RA6
#define HSPLL                0xFEFF                // HS w/PLL Enabled, Clk Freq = 4xFreq Osc. 

#define ECRA6                0xFDFF                // EC w/OSC2 config. as RA6
#define ECDB4                0xFCFF                // EC w/OSC2 as divide by 4 clock output
#define RC                0xFBFF
#define HS                0xFAFF
#define XT                0xF9FF                
#define LP                        0xF8FF

// Config. Register 2
// Brown Out reset
#define        BOREN                0xFFFF                // Brown-out reset enable

n代表 Config. Register n, 例如__CONFIG(1,x); 1 代表Config. Register 1, X可為OSCSEN,RC等。

!!!最后還應該注意的是如果在源程序中進行配置位設置,如果使用的軟件版本(比如使用picc18的8.20版本和MPLAB6.30)較低,雖然編譯不會有問題,但可能會出現配置位設置混亂,推薦使用picc18的8.35版本和MPLAB7.0以上。安裝HTSOFT的軟件時,也必須保證完全安裝,尤其是一定要安裝MPLAB_toolsuites工具。

欢迎光临: 阿克苏市| 昌平区| 邹城市| 大庆市| 华坪县| 新干县| 镇远县| 车致| 宜阳县| 那曲县| 铜鼓县| 绥江县| 安泽县| 南丰县| 马尔康县| 特克斯县| 东山县| 天柱县| 雷山县| 多伦县| 永修县| 平远县| 察哈| 黑河市| 繁昌县| 和平县| 枝江市| 若尔盖县| 香格里拉县| 曲沃县| 中西区| 芜湖市| 巴林右旗| 鹿邑县| 平果县| 沐川县| 墨脱县| 柳江县| 赤水市| 阿拉尔市| 乌海市|