/********************************************************************* * * General Delay rouines * ********************************************************************* * FileName: Delay.h * Dependencies: Compiler.h * Processor: PIC18, PIC24F, PIC24H, dsPIC30F, dsPIC33F * Complier: Microchip C18 v3.02 or higher * Microchip C30 v2.01 or higher * Company: Microchip Technology, Inc. * * Software License Agreement * * Copyright © 2002-2007 Microchip Technology Inc. All rights * reserved. * * Microchip licenses to you the right to use, modify, copy, and * distribute: * (i) the Software when embedded on a Microchip microcontroller or * digital signal controller product (“Device”) which is * integrated into Licensee’s product; or * (ii) ONLY the Software driver source files ENC28J60.c and * ENC28J60.h ported to a non-Microchip device used in * conjunction with a Microchip ethernet controller for the * sole purpose of interfacing with the ethernet controller. * * You should refer to the license agreement accompanying this * Software for additional information regarding your rights and * obligations. * * THE SOFTWARE AND DOCUMENTATION ARE PROVIDED “AS IS” WITHOUT * WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT * LIMITATION, ANY WARRANTY OF MERCHANTABILITY, FITNESS FOR A * PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT SHALL * MICROCHIP BE LIABLE FOR ANY INCIDENTAL, SPECIAL, INDIRECT OR * CONSEQUENTIAL DAMAGES, LOST PROFITS OR LOST DATA, COST OF * PROCUREMENT OF SUBSTITUTE GOODS, TECHNOLOGY OR SERVICES, ANY CLAIMS * BY THIRD PARTIES (INCLUDING BUT NOT LIMITED TO ANY DEFENSE * THEREOF), ANY CLAIMS FOR INDEMNITY OR CONTRIBUTION, OR OTHER * SIMILAR COSTS, WHETHER ASSERTED ON THE BASIS OF CONTRACT, TORT * (INCLUDING NEGLIGENCE), BREACH OF WARRANTY, OR OTHERWISE. * * * Author Date Comment *~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * Nilesh Rajbharti 5/9/02 Original (Rev 1.0) * Nilesh Rajbharti 6/10/02 Fixed C18 ms and us routines * Howard Schlunder 4/04/06 Changed for C30 ********************************************************************/ #ifndef __DELAY_H #define __DELAY_H #include "Compiler.h" #include "HardwareProfile.h" #if defined(__18CXX) && !defined(HI_TECH_C) #include #endif #ifndef INSTR_FREQ #error INSTR_FREQ must be defined. #endif #if defined(__C30__) || defined(HI_TECH_C) #define Delay10us(x) \ { \ unsigned long _dcnt; \ _dcnt=x*((unsigned long)(0.00001/(1.0/INSTR_FREQ)/6)); \ while(_dcnt--); \ } void DelayMs(unsigned int ms); #elif defined(__18CXX) #define Delay10us(us) Delay10TCYx(((INSTR_FREQ/1000000)*us)) #define DelayMs(ms) Delay1KTCYx((((INSTR_FREQ/1000)*ms)/1000)) #endif #endif