Fx2lib  0.2
include/autovector.h
Go to the documentation of this file.
00001 // Copyright (C) 2010 Ubixum, Inc. 
00002 //
00003 // This library is free software; you can redistribute it and/or
00004 // modify it under the terms of the GNU Lesser General Public
00005 // License as published by the Free Software Foundation; either
00006 // version 2.1 of the License, or (at your option) any later version.
00007 //
00008 // This library is distributed in the hope that it will be useful,
00009 // but WITHOUT ANY WARRANTY; without even the implied warranty of
00010 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00011 // Lesser General Public License for more details.
00012 //
00013 // You should have received a copy of the GNU Lesser General Public
00014 // License along with this library; if not, write to the Free Software
00015 // Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
00016 
00017 
00018 
00035 #ifndef USBJT_H
00036 #define USBJT_H
00037 
00038 #include "fx2regs.h"
00039 
00040 
00053 #define USE_USB_INTS() {EUSB=1;\
00054                         INTSETUP|=bmAV2EN;}
00055 
00062 #define USE_GPIF_INTS() {EIEX4=1;\
00063                         INTSETUP|=bmAV4EN|INT4IN;}
00064              
00065 
00066 #define CLEAR_USBINT() EXIF &= ~0x10
00067 #define CLEAR_GPIF() EXIF &= ~0x40
00068 
00069 #define ENABLE_SUDAV() USBIE|=bmSUDAV
00070 #define CLEAR_SUDAV() CLEAR_USBINT(); USBIRQ=bmSUDAV
00071 
00072 #define ENABLE_SUTOK() USBIE|=bmSUTOK;
00073 #define CLEAR_SUTOK() CLEAR_USBINT(); USBIRQ=bmSUTOK
00074 
00075 #define ENABLE_SOF() USBIE|=bmSOF
00076 #define CLEAR_SOF() CLEAR_USBINT(); USBIRQ=bmSOF
00077 
00078 #define ENABLE_SUSPEND() USBIE|=bmSUSP
00079 #define CLEAR_SUSPEND() CLEAR_USBINT(); USBIRQ=bmSUSP
00080 
00081 #define ENABLE_USBRESET() USBIE|= bmURES
00082 #define CLEAR_USBRESET() CLEAR_USBINT(); USBIRQ=bmURES
00083 
00084 #define ENABLE_HISPEED() USBIE|=bmHSGRANT
00085 #define CLEAR_HISPEED() CLEAR_USBINT(); USBIRQ=bmHSGRANT
00086 
00087 #define ENABLE_EP0IN() EPIE|=bmEP0IN
00088 #define CLEAR_EP0IN() CLEAR_USBINT(); EPIRQ=bmEP0IN
00089 
00090 #define ENABLE_EP0OUT() EPIE|=bmEP0OUT
00091 #define CLEAR_EP0OUT() CLEAR_USBINT(); EPIRQ=bmEP0OUT
00092 
00093 #define ENABLE_EP1IN() EPIE|=bmEP1IN
00094 #define CLEAR_EP1IN() CLEAR_USBINT(); EPIRQ=bmEP1IN
00095 
00096 #define ENABLE_EP1OUT() EPIE|=bmEP1OUT
00097 #define CLEAR_EP1OUT() CLEAR_USBINT(); EPIRQ=bmEP1OUT
00098 
00099 #define ENABLE_EP2() EPIE|=bmEP2
00100 #define CLEAR_EP2() CLEAR_USBINT(); EPIRQ=bmEP2
00101 
00102 #define ENABLE_EP4() EPIE|=bmEP4
00103 #define CLEAR_EP4() CLEAR_USBINT(); EPIRQ=bmEP4
00104 
00105 #define ENABLE_EP6() EPIE|=bmEP6
00106 #define CLEAR_EP6() CLEAR_USBINT(); EPIRQ=bmEP6
00107 
00108 #define ENABLE_EP8() EPIE|=bmEP8
00109 #define CLEAR_EP8() CLEAR_USBINT(); EPIRQ=bmEP8
00110 
00111 #define ENABLE_EP2ISOERR() USBERRIE |= bmISOEP2
00112 #define CLEAR_EP2ISOERR() CLEAR_USBINT(); USBERRIRQ = bmISOEP2
00113 
00114 #define ENABLE_EP6PF() EP6FIFOIE |= bmBIT2
00115 #define CLEAR_EP6PF() CLEAR_GPIF(); EP6FIFOIRQ=bmBIT2
00116 
00117 #define ENABLE_EP6FF() EP6FIFOIE |= bmBIT0
00118 #define CLEAR_EP6FF() CLEAR_GPIF(); EP6FIFOIRQ=bmBIT0
00119 
00120 #define ENABLE_GPIFDONE() GPIFIE |= 0x01;
00121 #define CLEAR_GPIFDONE() CLEAR_GPIF(); GPIFIRQ = 0x01;
00122 
00123 #define ENABLE_GPIFWF() GPIFIE |= 0x02;
00124 #define CLEAR_GPIFWF() GLEAR_GPIF(); GPIFIRQ = 0x02;
00125 
00132 typedef enum {
00133   SUDAV_ISR=13,
00134   SOF_ISR,
00135   SUTOK_ISR,
00136   SUSPEND_ISR,
00137   USBRESET_ISR,
00138   HISPEED_ISR,
00139   EP0ACK_ISR,  
00140   EP0IN_ISR,
00141   EP0OUT_ISR,
00142   EP1IN_ISR,
00143   EP1OUT_ISR,
00144   EP2_ISR,
00145   EP4_ISR,
00146   EP6_ISR,
00147   EP8_ISR,
00148   IBN_ISR,
00149   EP0PING_ISR,
00150   EP1PING_ISR,
00151   EP2PING_ISR,
00152   EP4PING_ISR,
00153   EP6PING_ISR,
00154   EP8PING_ISR,
00155   ERRLIMIT_ISR,  
00156   EP2ISOERR_ISR,
00157   EP4ISOERR_ISR,
00158   EP6ISOERR_ISR,
00159   EP8ISOERR_ISR,
00160   RESERVED_ISR,
00161   EP2PF_ISR,
00162   EP4PF_ISR,
00163   EP6PF_ISR,
00164   EP8PF_ISR,
00165   EP2EF_ISR,
00166   EP4EF_ISR,
00167   EP6EF_ISR,
00168   EP8EF_ISR,
00169   EP2FF_ISR,
00170   EP4FF_ISR,
00171   EP6FF_ISR,
00172   EP8FF_ISR,
00173   GPIFDONE_ISR,
00174   GPIFWF_ISR
00175 } USB_ISR;
00176 
00177 // you must include the predef of these in the file with your main
00178 // so lets just define them here
00179 
00180 void usb_isr(void) __interrupt (8);
00181 void sudav_isr() __interrupt;
00182 void sof_isr() __interrupt;
00183 void sutok_isr() __interrupt;
00184 void suspend_isr() __interrupt;
00185 void usbreset_isr() __interrupt;
00186 void hispeed_isr() __interrupt;
00187 void ep0ack_isr() __interrupt;
00188 void ep0in_isr() __interrupt;
00189 void ep0out_isr() __interrupt;
00190 void ep1in_isr() __interrupt;
00191 void ep1out_isr() __interrupt;
00192 void ep2_isr() __interrupt;
00193 void ep4_isr() __interrupt;
00194 void ep6_isr() __interrupt;
00195 void ep8_isr() __interrupt;
00196 void ibn_isr() __interrupt;
00197 void ep0ping_isr() __interrupt;
00198 void ep1ping_isr() __interrupt;
00199 void ep2ping_isr() __interrupt;
00200 void ep4ping_isr() __interrupt;
00201 void ep6ping_isr() __interrupt;
00202 void ep8ping_isr() __interrupt;
00203 void errlimit_isr() __interrupt;
00204 void ep2isoerr_isr() __interrupt;
00205 void ep4isoerr_isr() __interrupt;
00206 void ep6isoerr_isr() __interrupt;
00207 void ep8isoerr_isr() __interrupt;
00208 void spare_isr() __interrupt; // not used
00209 // gpif ints
00210 void gpif_isr(void) __interrupt (10);
00211 void ep2pf_isr() __interrupt;
00212 void ep4pf_isr() __interrupt;
00213 void ep6pf_isr() __interrupt;
00214 void ep8pf_isr() __interrupt;
00215 void ep2ef_isr() __interrupt;
00216 void ep4ef_isr() __interrupt;
00217 void ep6ef_isr() __interrupt;
00218 void ep8ef_isr() __interrupt;
00219 void ep2ff_isr() __interrupt;
00220 void ep4ff_isr() __interrupt;
00221 void ep6ff_isr() __interrupt;
00222 void ep8ff_isr() __interrupt;
00223 void gpifdone_isr() __interrupt;
00224 void gpifwf_isr() __interrupt;
00225 
00226 #endif
00227