00001
00002
00003
00004
00005
00054 #ifndef PICCOLO_ALL
00055 #define PICCOLO_ALL
00056
00057
00058 #include "piccolo_config.h"
00059
00060 #warning *** P R O J E K T K O N F I G U R Á C I Ó ***
00061 #if defined(USE_USB)
00062 #include "piccolo_usb.h"
00063 #warning * USE__USB : DEFINIÁLT *
00064 #else
00065 #warning * USE__USB : NEM DEFINIÁLT *
00066 #endif
00067 #if defined(USE_INTERRUPT)
00068 #warning * USE__INTERRUPT : DEFINIÁLT *
00069 #else
00070 #warning * USE__INTERRUPT : NEM DEFINIÁLT *
00071 #endif
00072 #if defined(HID_BOOTLOADER)
00073 #warning * HID__BOOTLOADER : DEFINIÁLT *
00074 #else
00075 #warning * HID__BOOTLOADER : NEM DEFINIÁLT *
00076 #endif
00077 #if defined(MCHPUSB_BOOTLOADER)
00078 #warning * MCHPUSB__BOOTLOADER : DEFINIÁLT *
00079 #endif
00080
00081 #warning ***********************************************
00082
00089 #define ChangeBits(reg,val,mask) reg ^= ((reg^val) & mask)
00090
00091
00092
00093 void hi_isr(void);
00094 void lo_isr(void);
00095
00096 #if defined(HID_BOOTLOADER)
00097 #define RESET_VECTOR 0x1000
00098 #define HIGH_INTERRUPT_VECTOR 0x1008
00099 #define LOW_INTERRUPT_VECTOR 0x1018
00100 #elif defined(MCHPUSB_BOOTLOADER)
00101 #define RESET_VECTOR 0x800
00102 #define HIGH_INTERRUPT_VECTOR 0x808
00103 #define LOW_INTERRUPT_VECTOR 0x818
00104 #else
00105 #define RESET_VECTOR 0x00
00106 #define HIGH_INTERRUPT_VECTOR 0x08
00107 #define LOW_INTERRUPT_VECTOR 0x18
00108 #endif
00109
00110
00111
00112
00113 #if defined(HID_BOOTLOADER)||defined(MCHPUSB_BOOTLOADER)
00114 extern void _startup (void);
00118 #pragma code REMAPPED_RESET_VECTOR = RESET_VECTOR
00119 void _reset (void)
00120 {
00121 _asm goto _startup _endasm
00122 }
00123 #endif
00124
00128 #pragma code REMAPPED_HIGH_INTERRUPT_VECTOR = HIGH_INTERRUPT_VECTOR
00129 void Remapped_High_ISR (void)
00130 {
00131 _asm goto hi_isr _endasm
00132 }
00133
00137 #pragma code REMAPPED_LOW_INTERRUPT_VECTOR = LOW_INTERRUPT_VECTOR
00138 void Remapped_Low_ISR (void)
00139 {
00140 _asm goto lo_isr _endasm
00141 }
00142
00143 #pragma code
00144
00145
00146 #ifndef USE_INTERRUPT
00147 void hi_isr()
00148 {
00149 }
00150
00151 void lo_isr()
00152 {
00153 }
00154 #endif //USE_INTERRUPT
00155
00156 #endif //PICCOLO_ALL