/** I N C L U S I O N E S ****************************************************/
#define USE_OR_MASKS // <---- esto es nadamás para el uso de la librería <usart.h> que por cierto no la estoy usando
#include <p18f26j50.h>
#include <usart.h>
//Definición de la Frecuencia de oscilacion del CPU (depende del cristal externo, asumido en principio en 12 MHz)
//Posibles valores esperados: FOSC_8MHZ, FOSC_16MHZ, FOSC_24MHZ, FOSC_48MHZ, FOSC_EXT
#define FOSC_8MHZ
//******************************************************************************************************************//
//******************************************Configuración del Microprocesador*******************************************//
//*****************************************************************************************************************//
#if defined(__18F46J50) || defined(__18F47J53) || defined(__18F26J50)
#if defined(FOSC_EXT)
#pragma config OSC = HS //High-Speed Crystal/Resonator mode, PLL disabled, crystal/resonator RA6 - RA7.
// #pragma config PLLDIV = 1 //No divide (8 MHz internal oscillator)
// #pragma config CPUDIV = OSC1 //No CPU system clock divide
#elif defined(FOSC_8MHZ)
#pragma config OSC = INTOSCPLL //Internal oscillator, PLL enabled
#pragma config PLLDIV = 1 //No divide (8 MHz internal oscillator)
#pragma config CPUDIV = OSC1 //No CPU system clock divide
#elif defined(FOSC_16MHZ)
#pragma config OSC = INTOSCPLL //Internal oscillator, PLL enabled
#pragma config PLLDIV = 2 //Divide by 2 (8 MHz internal oscillator)
#pragma config CPUDIV = OSC3_PLL3 //CPU system clock divide by 3
#elif defined(FOSC_24MHZ)
#pragma config OSC = INTOSCPLL //Internal oscillator, PLL enabled
#pragma config PLLDIV = 2 //Divide by 2 (8 MHz internal oscillator)
#pragma config CPUDIV = OSC2_PLL2 //CPU system clock divide by 2
#elif defined(FOSC_48MHZ)
#pragma config OSC = INTOSCPLL //Internal oscillator, PLL enabled
#pragma config PLLDIV = 2 //Divide by 2 (8 MHz internal oscillator))
#pragma config CPUDIV = OSC1 //No CPU system clock divide
#else
#error No ha elegido una frecuencia de oscilacion del CPU valida. Por favor revise el archivo "lelnede.h"
#endif
#pragma config DEBUG = OFF //Background Debug
#pragma config WDTEN = OFF //WDT disabled (enabled by SWDTEN bit)
#pragma config STVREN = ON //stack overflow/underflow reset enabled
#pragma config XINST = OFF //Extended instruction set disabled
#pragma config CP0 = OFF //Program memory is not code-protected
#pragma config FCMEN = OFF //Fail-Safe Clock Monitor disabled
#pragma config IESO = ON //Two-Speed Start-up disabled
#pragma config WDTPS = 2048 // 4 ms * 1024 = 4,096 seg
#pragma config DSWDTOSC = INTOSCREF //DSWDT uses INTOSC/INTRC as clock
#pragma config RTCOSC = INTOSCREF//T1OSCREF //RTCC uses T1OSC/T1CKI as clock
#pragma config DSBOREN = OFF //Zero-Power BOR disabled in Deep Sleep
#pragma config DSWDTEN = OFF //Disabled
#pragma config DSWDTPS = 8192 //1:8,192 (8.5 seconds)
#pragma config IOL1WAY = OFF //IOLOCK bit can be set and cleared
#pragma config MSSP7B_EN= MSK7 //7 Bit address masking
#pragma config WPFP = PAGE_1 //Write Protect Program Flash Page 0
#pragma config WPEND = PAGE_0 //Start protection at page 0
#pragma config WPCFG = OFF //Write/Erase last page protect Disabled
#pragma config WPDIS = OFF //WPFP[5:0], WPEND, and WPCFG bits ignored
#if defined(__18F47J53)
#pragma config CFGPLLEN = OFF
#pragma config ADCSEL = BIT12
#else
#pragma config T1DIG = OFF//ON //Sec Osc clock source may be selected
#pragma config LPT1OSC = OFF//ON //low power Timer1 mode
#endif
#else
#error Ha elegido un microprocesador diferente a los modelos PIC18F26J50, PIC18F46J50 y PIC18F47J53! Por favor, vaya a: Menu > Configure > Select Device...
#endif