PIC32MX ConfigSet

まずはConfig設定。PIC32ConfigSet.pdfから情報を抜粋。
このまま sourceに貼れるようにモディファイ。

MPLABで設定していく方法もあるようだが,
#pragmaとして明示的に記入する方が管理いやすいような気がする。


// Peripheral Module Disable Configuration:
#pragma config  PMDL1WAY = OFF // Allow multiple reconfigurations
#pragma config  PMDL1WAY = ON // Allow only one reconfiguration
// Peripheral Pin Select Configuration:
#pragma config  IOL1WAY = OFF // Allow multiple reconfigurations
#pragma config  IOL1WAY = ON // Allow only one reconfiguration
// USB USID Selection:
#pragma config  FUSBIDIO = OFF // Controlled by Port Function
#pragma config  FUSBIDIO = ON // Controlled by the USB Module
// USB VBUS ON Selection:
#pragma config  FVBUSONIO = OFF // Controlled by Port Function
#pragma config  FVBUSONIO = ON // Controlled by USB Module
// PLL Input Divider:
#pragma config  FPLLIDIV = DIV_1 // 1x Divider
#pragma config  FPLLIDIV = DIV_2 // 2x Divider
#pragma config  FPLLIDIV = DIV_3 // 3x Divider
#pragma config  FPLLIDIV = DIV_4 // 4x Divider
#pragma config  FPLLIDIV = DIV_5 // 5x Divider
#pragma config  FPLLIDIV = DIV_6 // 6x Divider
#pragma config  FPLLIDIV = DIV_10 // 10x Divider
#pragma config  FPLLIDIV = DIV_12 // 12x Divider
// PLL Multiplier:
#pragma config  FPLLMUL = MUL_15 // 15x Multiplier
#pragma config  FPLLMUL = MUL_16 // 16x Multiplier
#pragma config  FPLLMUL = MUL_17 // 17x Multiplier
#pragma config  FPLLMUL = MUL_18 // 18x Multiplier
#pragma config  FPLLMUL = MUL_19 // 19x Multiplier
#pragma config  FPLLMUL = MUL_20 // 20x Multiplier
#pragma config  FPLLMUL = MUL_21 // 21x Multiplier
#pragma config  FPLLMUL = MUL_24 // 24x Multiplier
// USB PLL Input Divider:
#pragma config  UPLLIDIV = DIV_1 // 1x Divider
#pragma config  UPLLIDIV = DIV_2 // 2x Divider
#pragma config  UPLLIDIV = DIV_3 // 3x Divider
#pragma config  UPLLIDIV = DIV_4 // 4x Divider
#pragma config  UPLLIDIV = DIV_5 // 5x Divider
#pragma config  UPLLIDIV = DIV_6 // 6x Divider
#pragma config  UPLLIDIV = DIV_10 // 10x Divider
#pragma config  UPLLIDIV = DIV_12 // 12x Divider
// USB PLL Enable:
#pragma config  UPLLEN = ON // Enabled
#pragma config  UPLLEN = OFF // Disabled and Bypassed
// System PLL Output Clock Divider:
#pragma config  FPLLODIV = DIV_1 // PLL Divide by 1
#pragma config  FPLLODIV = DIV_2 // PLL Divide by 2
#pragma config  FPLLODIV = DIV_4 // PLL Divide by 4
#pragma config  FPLLODIV = DIV_8 // PLL Divide by 8
#pragma config  FPLLODIV = DIV_16 // PLL Divide by 16
#pragma config  FPLLODIV = DIV_32 // PLL Divide by 32
#pragma config  FPLLODIV = DIV_64 // PLL Divide by 64
#pragma config  FPLLODIV = DIV_256 // PLL Divide by 256
// Oscillator Selection Bits:
#pragma config  FNOSC = FRC // Fast RC Osc (FRC)
#pragma config  FNOSC = FRCPLL // Fast RC Osc with PLL
#pragma config  FNOSC = PRI // Primary Osc (XT,HS,EC)
#pragma config  FNOSC = PRIPLL // Primary Osc w/PLL (XT+,HS+,EC+PLL)
#pragma config  FNOSC = SOSC // Low Power Secondary Osc (SOSC)
#pragma config  FNOSC = LPRC // Low Power RC Osc (LPRC)
#pragma config  FNOSC = FRCDIV16 // Fast RC Osc w/Div-by-16 (FRC/16)
#pragma config  FNOSC = FRCDIV // Fast RC Osc w/Div-by-N (FRCDIV)
// Secondary Oscillator Enable:
#pragma config  FSOSCEN = OFF // Disabled
#pragma config  FSOSCEN = ON // Enabled
// Internal/External Switch Over:
#pragma config  IESO = OFF // Disabled
#pragma config  IESO = ON // Enabled
// Primary Oscillator Configuration:
#pragma config  POSCMOD = EC // External clock mode
#pragma config  POSCMOD = XT // XT osc mode
#pragma config  POSCMOD = HS // HS osc mode
#pragma config  POSCMOD = OFF // Primary osc disabled
// CLKO Output Signal Active on the // OSCO Pin:
#pragma config  OSCIOFNC = ON // Enabled
#pragma config  OSCIOFNC = OFF // Disabled
// Peripheral Clock Divisor:
#pragma config  FPBDIV = DIV_1 // Pb_Clk is Sys_Clk/1
#pragma config  FPBDIV = DIV_2 // Pb_Clk is Sys_Clk/2
#pragma config  FPBDIV = DIV_4 // Pb_Clk is Sys_Clk/4
#pragma config  FPBDIV = DIV_8 // Pb_Clk is Sys_Clk/8
// Clock Switching and Monitor Selection:
#pragma config  FCKSM = CSECME // Clock Switch Enable, FSCM Enabled
#pragma config  FCKSM = CSECMD // Clock Switch Enable, FSCM Disabled
#pragma config  FCKSM = CSDCMD // Clock Switch Disable, FSCM Disabled
// Watchdog Timer Postscaler:
#pragma config  WDTPS = PS1 // 0.0423611111111111
#pragma config  WDTPS = PS2 // 0.0430555555555556
#pragma config  WDTPS = PS4 // 0.0444444444444444
#pragma config  WDTPS = PS8 // 0.0472222222222222
#pragma config  WDTPS = PS16 // 0.0527777777777778
#pragma config  WDTPS = PS32 // 0.0638888888888889
#pragma config  WDTPS = PS64 // 0.0861111111111111
#pragma config  WDTPS = PS128 // 0.130555555555556
#pragma config  WDTPS = PS256 // 0.219444444444444
#pragma config  WDTPS = PS512 // 0.397222222222222
#pragma config  WDTPS = PS1024 // 0.752777777777778
#pragma config  WDTPS = PS2048 // 1.46388888888889
#pragma config  WDTPS = PS4096 // 2.88611111111111
#pragma config  WDTPS = PS8192 // 5.73055555555556
#pragma config  WDTPS = PS16384 // 1:16384
#pragma config  WDTPS = PS32768 // 1:32768
#pragma config  WDTPS = PS65536 // 1:65536
#pragma config  WDTPS = PS131072 // 1:131072
#pragma config  WDTPS = PS262144 // 1:262144
#pragma config  WDTPS = PS524288 // 1:524288
#pragma config  WDTPS = PS1048576 // 1:1048576
// Watchdog Timer Window Enable:
// Windowモード有効/無効
// 有効の場合,FWDTWINSZで決められた
// 期間にCLRWDT命令が
// 実行される必要がある。
#pragma config  WINDIS = ON // Watchdog Timer is in Window Mode
#pragma config  WINDIS = OFF // Watchdog Timer is in Non-Window Mode
// Watchdog Timer Enable:
#pragma config  FWDTEN = OFF // WDT Disabled (SWDTEN Bit Controls)
#pragma config  FWDTEN = ON // WDT Enabled
// Watchdog Timer Window Size:
#pragma config  FWDTWINSZ = WINSZ_75 // Window Size is 75%
#pragma config  FWDTWINSZ = WINSZ_50 // Window Size is 50%
#pragma config  FWDTWINSZ = WINSZ_37 // Window Size is 37.5%
#pragma config  FWDTWINSZ = WISZ_25 // Window Size is 25%
// Background Debugger Enable:
#pragma config  DEBUG = ON // Debugger is Enabled
#pragma config  DEBUG = OFF // Debugger is Disabled
// JTAG Enable:
#pragma config  JTAGEN = OFF // JTAG Disabled
#pragma config  JTAGEN = ON // JTAG Port Enabled
// ICE/ICD Comm Channel Select:
// デバッグポート端子を選択。
#pragma config  ICESEL = RESERVED // Reserved
#pragma config  ICESEL = ICS_PGx3 // Communicate on PGEC3/PGED3
#pragma config  ICESEL = ICS_PGx2 // Communicate on PGEC2/PGED2
#pragma config  ICESEL = ICS_PGx1 // Communicate on PGEC1/PGED1
// Program Flash Write Protect:
#pragma config  PWP = PWP32K // First 32K
#pragma config  PWP = PWP31K // First 31K
#pragma config  PWP = PWP30K // First 30K
#pragma config  PWP = PWP29K // First 29K
#pragma config  PWP = PWP28K // First 28K
#pragma config  PWP = PWP27K // First 27K
#pragma config  PWP = PWP26K // First 26K
#pragma config  PWP = PWP25K // First 25K
#pragma config  PWP = PWP24K // First 24K
#pragma config  PWP = PWP23K // First 23K
#pragma config  PWP = PWP22K // First 22K
#pragma config  PWP = PWP21K // First 21K
#pragma config  PWP = PWP20K // First 20K
#pragma config  PWP = PWP19K // First 19K
#pragma config  PWP = PWP18K // First 18K
#pragma config  PWP = PWP17K // First 17K
#pragma config  PWP = PWP16K // First 16K
#pragma config  PWP = PWP15K // First 15K
#pragma config  PWP = PWP14K // First 14K
#pragma config  PWP = PWP13K // First 13K
#pragma config  PWP = PWP12K // First 12K
#pragma config  PWP = PWP11K // First 11K
#pragma config  PWP = PWP10K // First 10K
#pragma config  PWP = PWP9K // First 9K
#pragma config  PWP = PWP8K // First 8K
#pragma config  PWP = PWP7K // First 7K
#pragma config  PWP = PWP6K // First 6K
#pragma config  PWP = PWP5K // First 5K
#pragma config  PWP = PWP4K // First 4K
#pragma config  PWP = PWP3K // First 3K
#pragma config  PWP = PWP2K // First 2K
#pragma config  PWP = PWP1K // First 1K
#pragma config  PWP = OFF // Disable
// Boot Flash Write Protect bit:
#pragma config  BWP = ON // Protection Enabled
#pragma config  BWP = OFF // Protection Disabled
// Code Protect:
#pragma config  CP = ON // Protection Enabled
#pragma config  CP = OFF // Protection Disabled

コメント

タイトルとURLをコピーしました