1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- /*-------------------------------------------------------------------------
- config.c - PIC configuration words
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
- You should have received a copy of the GNU Lesser General Public
- License along with this library; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- -------------------------------------------------------------------------*/
- #include <pic18fregs.h>
- /* Generic Setup() */
- void Generic26kSetup()
- {
- OSCCON=0b01110000;
- OSCTUNEbits.PLLEN=1;
- #if UART_PORT==1
- ANSELCbits.ANSC7=0; //enable digital input buffer for RX pin
- #endif
- TRISA=0xff;
- TRISB=0xff;
- TRISC=0xff;
- TRISE=0xff;
- IOCB=0; //disable all 4 portB "interrupt on change"
- INTCON2bits.RBPU=0; //enable PORTB weak pullups
- }
- #ifdef BOOTLOADER
- /* Set the PIC config words */
- __code char __at __CONFIG1H _conf1 = _FOSC_INTIO67_1H // Internal oscillator block
- & _PLLCFG_ON_1H // Oscillator multiplied by 4
- & _PRICLKEN_ON_1H // Primary clock enabled
- & _FCMEN_OFF_1H // Fail-Safe Clock Monitor disabled
- & _IESO_OFF_1H; // Oscillator Switchover mode disabled
- __code char __at __CONFIG2L _conf2 = _PWRTEN_ON_2L // Power up timer enabled
- & _BOREN_ON_2L // Brown-out Reset enabled and controlled by software (SBOREN is enabled)
- & _BORV_285_2L; // VBOR set to 2.85 V nominal
- __code char __at __CONFIG2H _conf3 = _WDTEN_SWON_2H // WDT is controlled by SWDTEN bit of the WDTCON register
- & _WDTPS_256_2H; // 1:256 = 1.024s
- __code char __at __CONFIG4L _conf5 = //_STVREN_OFF_4L // Stack full/underflow will not cause Reset
- _STVREN_ON_4L // Stack full/underflow will cause Reset
- & _LVP_OFF_4L // Single-Supply ICSP disabled
- & _XINST_OFF_4L // Instruction set extension and Indexed Addressing mode disabled (Legacy mode)
- & _DEBUG_OFF_4L; // Disabled
- __code char __at __CONFIG5L _conf6 = _CP0_OFF_5L // Block 0 (000800-003FFFh) not code-protected
- & _CP1_OFF_5L // Block 1 (004000-007FFFh) not code-protected
- & _CP2_OFF_5L // Block 2 (008000-00BFFFh) not code-protected
- & _CP3_OFF_5L ; // Block 3 (00C000-00FFFFh) not code-protected
- __code char __at __CONFIG5H _conf7 = _CPB_OFF_5H // Boot block (000000-0007FFh) not code-protected
- & _CPD_OFF_5H; // Data EEPROM not code-protected
- __code char __at __CONFIG6L _conf8 = 0xff; // no code protection at all
- __code char __at __CONFIG6H _conf9 = 0xff;
- __code char __at __CONFIG7L _conf10 = 0xff;
- __code char __at __CONFIG7H _conf11 = 0xff;
- #endif //BOOTLOADER
|