#ifndef __DELAYS_H

#define __DELAYS_H


/* PIC 17Cxxx and 18Cxxx cycle-count delay routines.
 *
 *   Functions:
 *		 Delay1TCY()
 *               Delay10TCY()  // 17Cxx only
 *               Delay10TCYx()
 *               Delay100TCYx()
 *               Delay1KTCYx()
 *               Delay10KTCYx()
 */

#if defined(ABSIMULATION_NOCOPROCESSOR) || defined(ABSIMULATION_COPROCESSOR)\

    || defined(ABSIMULATION_COPRSIM) \
    || defined(COPROCESSOR_STANDALONE) || defined(COPROCESSOR_SIMULATION)
  #define FAR

#endif

#if defined(FRC_NOCOPROCESSOR) || defined(FRC_COPROCESSOR)

  #define FAR far

#endif


/* Delay of exactly 1 Tcy */
#define Delay1TCY() Nop()


#if __18CXX

  #define PARAM_SCLASS auto

#else

  #define PARAM_SCLASS static

#endif


/* Delay of exactly 10 Tcy */
#if    __18CXX

  #define Delay10TCY() Delay10TCYx(1)

#else /* 17CXX */

  FAR void Delay10TCY(void);
#endif


/* Delay10TCYx
 * Delay multiples of 10 Tcy
 * Passing 0 (zero) results in a delay of 2560 cycles.
 * The 18Cxxx version of this function supports the full range [0,255]
 * The 17Cxxx version supports [2,255] and 0.
 */
#if    __18CXX

  void Delay10TCYx(PARAM_SCLASS unsigned char);
#else /* 17CXX */

  FAR void Delay10TCYx(PARAM_SCLASS unsigned char);
#endif


/* Delay100TCYx
 * Delay multiples of 100 Tcy
 * Passing 0 (zero) results in a delay of 25,600 cycles.
 * The full range of [0,255] is supported.
 */
#if    __18CXX

  void Delay100TCYx(PARAM_SCLASS unsigned char);
#else /* 17CXX */

  FAR void Delay100TCYx(PARAM_SCLASS unsigned char);
#endif


/* Delay1KTCYx
 * Delay multiples of 1000 Tcy
 * Passing 0 (zero) results in a delay of 256,000 cycles.
 * The full range of [0,255] is supported.
 */
#if    __18CXX

  void Delay1KTCYx(PARAM_SCLASS unsigned char);
#else /* 17CXX */

  FAR void Delay1KTCYx(PARAM_SCLASS unsigned char);
#endif


/* Delay10KTCYx
 * Delay multiples of 10,000 Tcy
 * Passing 0 (zero) results in a delay of 2,560,000 cycles.
 * The full range of [0,255] is supported.
 */
#if    __18CXX

  void Delay10KTCYx(PARAM_SCLASS unsigned char);
#else /* 17CXX */

  FAR void Delay10KTCYx(PARAM_SCLASS unsigned char);
#endif


#endif



syntax highlighted by Code2HTML, v. 0.9.1