Rev Author Line No. Line
1661 kaklik 1 /********************************************************************
2 FileName: HardwareProfile - PIC18F87J50 PIM.h
3 Dependencies: See INCLUDES section
4 Processor: PIC18 USB Microcontrollers
5 Hardware: PIC18F87J50 PIM
6 Compiler: Microchip C18
7 Company: Microchip Technology, Inc.
8  
9 Software License Agreement:
10  
11 The software supplied herewith by Microchip Technology Incorporated
12 (the “Company”) for its PIC® Microcontroller is intended and
13 supplied to you, the Company’s customer, for use solely and
14 exclusively on Microchip PIC Microcontroller products. The
15 software is owned by the Company and/or its supplier, and is
16 protected under applicable copyright laws. All rights are reserved.
17 Any use in violation of the foregoing restrictions may subject the
18 user to criminal sanctions under applicable laws, as well as to
19 civil liability for the breach of the terms and conditions of this
20 license.
21  
22 THIS SOFTWARE IS PROVIDED IN AN “AS IS” CONDITION. NO WARRANTIES,
23 WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT NOT LIMITED
24 TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
25 PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. THE COMPANY SHALL NOT,
26 IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL OR
27 CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER.
28  
29 ********************************************************************
30 File Description:
31  
32 Change History:
33 Rev Date Description
34 1.0 11/19/2004 Initial release
35 2.1 02/26/2007 Updated for simplicity and to use common
36 coding style
37 2.3 09/15/2008 Broke out each hardware platform into its own
38 "HardwareProfile - xxx.h" file
39 ********************************************************************/
40  
41 #ifndef HARDWARE_PROFILE_PIC18F87J50_PIM_H
42 #define HARDWARE_PROFILE_PIC18F87J50_PIM_H
43  
44 /*******************************************************************/
45 /******** USB stack hardware selection options *********************/
46 /*******************************************************************/
47 //This section is the set of definitions required by the MCHPFSUSB
48 // framework. These definitions tell the firmware what mode it is
49 // running in, and where it can find the results to some information
50 // that the stack needs.
51 //These definitions are required by every application developed with
52 // this revision of the MCHPFSUSB framework. Please review each
53 // option carefully and determine which options are desired/required
54 // for your application.
55  
56 /** USB ************************************************************/
57 //The PIC18F87J50 FS USB Plug-In Module supports the USE_USB_BUS_SENSE_IO
58 //feature. The USE_SELF_POWER_SENSE_IO feature is not implemented on the
59 //circuit board, so the USE_SELF_POWER_SENSE_IO define should always be
60 //commented for this hardware platform.
61  
62 //#define USE_SELF_POWER_SENSE_IO
63 #define tris_self_power TRISAbits.TRISA2 // Input
64 #if defined(USE_SELF_POWER_SENSE_IO)
65 #define self_power PORTAbits.RA2
66 #else
67 #define self_power 1
68 #endif
69  
70 //#define USE_USB_BUS_SENSE_IO //JP1 must be in R-U position to use this feature on this board
71 #define tris_usb_bus_sense TRISBbits.TRISB5 // Input
72 #if defined(USE_USB_BUS_SENSE_IO)
73 #define USB_BUS_SENSE PORTBbits.RB5
74 #else
75 #define USB_BUS_SENSE 1
76 #endif
77  
78 //Uncomment this to make the output HEX of this project
79 // to be able to be bootloaded using the HID bootloader
80 #define PROGRAMMABLE_WITH_USB_HID_BOOTLOADER
81  
82  
83 /*******************************************************************/
84 /*******************************************************************/
85 /*******************************************************************/
86 /******** Application specific definitions *************************/
87 /*******************************************************************/
88 /*******************************************************************/
89 /*******************************************************************/
90  
91 /** Board definition ***********************************************/
92 //These defintions will tell the main() function which board is
93 // currently selected. This will allow the application to add
94 // the correct configuration bits as wells use the correct
95 // initialization functions for the board. These defitions are only
96 // required in the stack provided demos. They are not required in
97 // final application design.
98 #define DEMO_BOARD PIC18F87J50_PIM
99 #define PIC18F87J50_PIM
100 #define CLOCK_FREQ 48000000
101 #define GetSystemClock() CLOCK_FREQ
102 #define GetInstructionClock() CLOCK_FREQ
103  
104 /** LED ************************************************************/
105 #define mInitAllLEDs() {LATE &= 0xFC; TRISE &= 0xFC; LATD &= 0xF3; TRISD &= 0xF3;}
106  
107 #define mLED_1 LATEbits.LATE0
108 #define mLED_2 LATEbits.LATE1
109 #define mLED_3 LATDbits.LATD2
110 #define mLED_4 LATDbits.LATD3
111  
112 #define mGetLED_1() mLED_1
113 #define mGetLED_2() mLED_2
114 #define mGetLED_3() mLED_3
115 #define mGetLED_4() mLED_4
116  
117 #define mLED_1_On() mLED_1 = 1;
118 #define mLED_2_On() mLED_2 = 1;
119 #define mLED_3_On() mLED_3 = 1;
120 #define mLED_4_On() mLED_4 = 1;
121  
122 #define mLED_1_Off() mLED_1 = 0;
123 #define mLED_2_Off() mLED_2 = 0;
124 #define mLED_3_Off() mLED_3 = 0;
125 #define mLED_4_Off() mLED_4 = 0;
126  
127 #define mLED_1_Toggle() mLED_1 = !mLED_1;
128 #define mLED_2_Toggle() mLED_2 = !mLED_2;
129 #define mLED_3_Toggle() mLED_3 = !mLED_3;
130 #define mLED_4_Toggle() mLED_4 = !mLED_4;
131  
132 /** SWITCH *********************************************************/
133 #define mInitAllSwitches() TRISBbits.TRISB4=1;
134 #define mInitSwitch2() TRISBbits.TRISB4=1;
135 #define mInitSwitch3() TRISBbits.TRISB4=1;
136 #define sw2 PORTBbits.RB4
137 #define sw3 PORTBbits.RB4
138  
139 /** POT ************************************************************/
140 #define mInitPOT() {TRISAbits.TRISA0=1; \
141 WDTCONbits.ADSHR = 1; \
142 ANCON0bits.PCFG0 = 1; \
143 WDTCONbits.ADSHR = 0; \
144 ADCON0=0x01; \
145 ADCON1=0xBE;} // POT on HPC Explorer
146  
147 /** I 2 C T E M P S E N S E *************************************/
148 #define mInitI2CPins() TRISC |= 0x18; // RC3 and RC4 are I2C
149  
150 #endif //HARDWARE_PROFILE_PIC18F87J50_PIM_H