00001
00002
00003
00004
00005
00006 #ifndef PICCOLO_4550_H
00007 #define PICCOLO_4550_H
00008
00017
00018
00019
00020
00021
00022 #if defined(PICCOLO_ALL) // Csak a főprogramhoz csatoljhatuk!
00023 #pragma config PLLDIV = 5 // PLL osztó 20 MHz-es kristályhoz
00024 #pragma config CPUDIV = OSC1_PLL2
00025 #pragma config USBDIV = 2 // órajel forrása a 96MHz PLL/2
00026 #pragma config FOSC = HSPLL_HS // HS oszcillátor és PLL az USB-hez is
00027 #pragma config FCMEN = OFF // Fail Safe Clock Monitor tiltása
00028 #pragma config IESO = OFF // Belső/külső oszcillátor tiltása
00029 #pragma config PWRT = ON // Bekapcsoláskor 62 ms várakozás
00030 #pragma config BOR = ON // Brown our Reset engedélyezve
00031 #pragma config BORV = 2 // Reset szint = 2,7 V
00032 #pragma config VREGEN = ON // VUSB belső stabilizátorról megy
00033 #pragma config WDT = OFF // Watchdog timer letiltva
00034 #pragma config WDTPS = 256 // Watchdog utószámláló beállítása
00035 #pragma config MCLRE = ON // MCLR (reset) bemenet engedélyezve
00036 #pragma config LPT1OSC = OFF // T1OSC nagyobb teljesítményű üzemmód
00037 #pragma config PBADEN = OFF // PORTB<4:0> digitális I/O-ként inicializálódik
00038 #pragma config CCP2MX = ON // RC1 legyen a CCP2 kimenet
00039 #pragma config STVREN = ON // A verem túlcsordulása RESET-et okoz
00040 #pragma config LVP = OFF // Alacsonyfeszültségű programozás letiltva
00041 #pragma config ICPRT = OFF // Dedikált programozói kivezetés nincs
00042 #pragma config XINST = OFF // Extended Instruction Set
00043 #pragma config DEBUG = OFF // Háttér nyomkövetés letiltva, RB6/7 normál I/O
00044 #pragma config CP0 = OFF // Kódvédelem kikapcsolva
00045 #pragma config CP1 = OFF
00046 #pragma config CP2 = OFF
00047 #pragma config CP3 = OFF
00048 #if defined(MCHPUSB_BOOTLOADER) // A Boot blokkba csak ez a bootloader fér bele!
00049 #pragma config CPB = ON // Boot Blokk kódvédelem bekapcsolva
00050 #else
00051 #pragma config CPB = OFF // Boot Blokk kódvédelem kikapcsolva
00052 #endif
00053 #pragma config CPD = OFF
00054 #pragma config WRT0 = OFF // Írásvédelem kikapcsolva
00055 #pragma config WRT1 = OFF
00056 #pragma config WRT2 = OFF
00057 #pragma config WRT3 = OFF
00058 #if defined(MCHPUSB_BOOTLOADER)
00059 #pragma config WRTB = ON // Boot Blokk írásvédelem bekapcsolva
00060 #else
00061 #pragma config WRTB = OFF // Boot Blokk írásvédelem kikapcsolva
00062 #endif
00063 #pragma config WRTC = OFF
00064 #pragma config WRTD = OFF
00065 #pragma config EBTR0 = OFF // Táblázatolvasás ne legyen letiltva
00066 #pragma config EBTR1 = OFF
00067 #pragma config EBTR2 = OFF
00068 #pragma config EBTR3 = OFF
00069 #pragma config EBTRB = OFF //Boot blokk táblaolvasás ne legyen letiltva
00070 #endif
00071
00072
00073
00074
00075
00076
00077
00078 #define tris_self_power TRISAbits.TRISA2 // Input
00079 #if defined(USE_SELF_POWER_SENSE_IO)
00080 #define self_power PORTAbits.RA2
00081 #else
00082 #define self_power 1
00083 #endif
00084
00085
00086
00087
00088
00089 #define tris_usb_bus_sense TRISAbits.TRISA1 // Input
00090 #if defined(USE_USB_BUS_SENSE_IO)
00091 #define USB_BUS_SENSE PORTAbits.RA1
00092 #else
00093 #define USB_BUS_SENSE 1
00094 #endif
00095
00096
00097
00098
00099 #define CLOCK_FREQ 48000000
00100
00102 #define mInitAllLEDs() LATD &= 0xF0; TRISD &= 0xF0;
00103 #define LEDport LATD
00104 #define LEDtris TRISD
00105 #define mLED_1 LATDbits.LATD0
00106 #define mLED_2 LATDbits.LATD1
00107 #define mLED_3 LATDbits.LATD2
00108 #define mLED_4 LATDbits.LATD3
00109
00110 #define mGetLED_1() mLED_1
00111 #define mGetLED_2() mLED_2
00112 #define mGetLED_3() mLED_3
00113 #define mGetLED_4() mLED_4
00114
00115 #define mLED_1_On() mLED_1 = 1;
00116 #define mLED_2_On() mLED_2 = 1;
00117 #define mLED_3_On() mLED_3 = 1;
00118 #define mLED_4_On() mLED_4 = 1;
00119
00120 #define mLED_1_Off() mLED_1 = 0;
00121 #define mLED_2_Off() mLED_2 = 0;
00122 #define mLED_3_Off() mLED_3 = 0;
00123 #define mLED_4_Off() mLED_4 = 0;
00124
00125 #define mLED_1_Toggle() mLED_1 = !mLED_1;
00126 #define mLED_2_Toggle() mLED_2 = !mLED_2;
00127 #define mLED_3_Toggle() mLED_3 = !mLED_3;
00128 #define mLED_4_Toggle() mLED_4 = !mLED_4;
00129
00131 #define mInitSwitch1() TRISBbits.TRISB4=1;
00132 #define SW1 PORTBbits.RB4
00133 #define sw2 PORTBbits.RB4 // Just for compatibility
00134
00136 #define INPUT_PIN 1
00137 #define OUTPUT_PIN 0
00138
00139 #define I2C_SCL TRISBbits.TRISB1
00140 #define I2C_SDA TRISBbits.TRISB0
00141
00142 #define SPI_SDI TRISBbits.TRISB0
00143 #define SPI_SCK TRISBbits.TRISB1
00144 #define SPI_SDO TRISCbits.TRISC7
00145 #define SPI_SS TRISAbits.TRISA5
00146
00148 #define mInitPOT() {TRISAbits.TRISA0=1; \
00149 ADCON0=0x01; \
00150 ADCON2=0x3C; \
00151 ADCON2bits.ADFM = 1;} // POT on RA0
00152
00154 #define DISABLE_ALL_ANALOG() {CMCON = 0b00000111; ADCON1 = 0b00001111; }
00155 #define ENABLE_ONE_ANALOG() {CMCON = 0b00000111; ADCON1 = 0b00001110; }
00156 #define ENABLE_TWO_ANALOG() {CMCON = 0b00000111; ADCON1 = 0b00001101; }
00157 #endif
00158