/********************************************/
/*Interrupts                                */
/*PIC32MX795F512L-80I/PF                    */
/********************************************/
#include <xc.h>
#include <sys/attribs.h>
void Interrupts_Init(void)
{
    //Set the interrupt controller for multi-vector mode
    INTCONSET = _INTCON_MVEC_MASK; 
    
    /*************************************/
    /*Priorities                         */
    /*************************************/
    //USB priority
    IPC11bits.USBIP = 7;
    IPC11bits.USBIS = 3;
        
    return;
}

//USB
void __ISR(45, IPL7SRS) USB_Srvc(void)
{
//    DisplayData();
    U1CONbits.PPBRST = 1; // reset ping-pong buffer pointers to EVEN

    if(U1IRbits.URSTIF)
    {
        
        U1IR = 1 << 0;
        
    }
    
    if(U1IRbits.UERRIF)
    {
        U1IR = 1 << 1;
    }
    
    if(U1IRbits.SOFIF)
    {
        U1IR = 1 << 2;
    }
      
    /***********************************************************/
    //TRNIF
    /***********************************************************/
    if(U1IRbits.TRNIF != 0)
    {        
        
        U1IR = 1 << 3;               
    }
    /***********************************************************/
    /***********************************************************/
    
    
    if(U1IRbits.IDLEIF)
    {
        U1IR = 1 << 4;
    }
    
    if(U1IRbits.STALLIF)
    {
        U1IR = 1 << 7;
    }
    
    if(U1IRbits.ATTACHIF)
    {
        
        U1IR = 1 << 6;
    }
    
    if(U1IRbits.DETACHIF)
    {
        
        U1IR = 1 << 0;
    }
    
        IFS1 = 0 << 25;
}

