/*****************************************&**********/
/*Programmable Delay                                */
/*PR5 = (delay in uS - 5) / 0.0125 @ PBCLK = 80MHz  */
/*Delay time @ 96MHz == max delay (65,535) = 572uS  */
/*Delay time @ 80MHz == max delay (65,535) = 688uS  */
/*~8.73nS per tic @ 96MHz                           */
/*PIC32MX795F512L-80I/PF                            */
/****************************************************/

#include "xc.h"
 

void Delay(int delay_us)
{
    if(delay_us < 1)
    {
        return;
    }
    
    if(delay_us > 0xffff)
    {
        delay_us = 0xffff;
    }
    
    PR5 = delay_us;
    
    TMR5 = 0;
    IFS0bits.T5IF = 0;
    
    //Start Timer5
    T5CONbits.ON = 1;   
    
    while(IFS0bits.T5IF == 0)
    {
        //wait...
    }
    
    //Stop Timer5
    T5CONbits.ON = 0;   

    return;
}

