delay.h
上传用户:sdttscl
上传日期:2010-01-04
资源大小:683k
文件大小:2k
源码类别:

Modem编程

开发平台:

C/C++

  1. //---------------------------------------------------------------------------------------------------
  2. // Project:- DE8681
  3. //   Filename:- DELAY.H
  4. // Description:- Header file for DELAY.C
  5. // Programmer:- D.T.F
  6. // Version:- 2.0
  7. // Created:- 28th February 2002
  8. // Last modified:-
  9. //---------------------------------------------------------------------------------------------------
  10. // (C) Consumer Microcircuits Ltd 2002
  11. //
  12. // This firmware was designed by:-
  13. // Consumer Microcircuits Ltd,
  14. // Langford, Maldon,
  15. // ESSEX
  16. // CM9 6WG.
  17. // in the UK for use with CML evaluation kits only and is based on UK originated technology.
  18. // Please contact
  19. // sales@cmlmicro.co.uk
  20. // +44 (0)1621 875500
  21. // for licensing details.
  22. //---------------------------------------------------------------------------------------------------
  23. /*
  24.  * Delay functions for HI-TECH C on the PIC
  25.  *
  26.  * Functions available:
  27.  * DelayUs(x) Delay specified number of microseconds
  28.  * DelayMs(x) Delay specified number of milliseconds
  29.  * Delay1s(x) Delay specified number of seconds
  30.  *
  31.  * Note that there are range limits: x must not exceed 255 - for xtal
  32.  * frequencies > 12MHz the range for DelayUs is even smaller.
  33.  * To use DelayUs it is only necessary to include this file; to use
  34.  * DelayMs you must include delay.c in your project.
  35.  *
  36.  */
  37. /* Set the crystal frequency in the CPP predefined symbols list in
  38. HPDPIC, or on the PICC commmand line, e.g.
  39. picc -DXTAL_FREQ=4MHZ
  40. or
  41. picc -DXTAL_FREQ=100KHZ
  42. Note that this is the crystal frequency, the CPU clock is
  43. divided by 4.
  44.  * MAKE SURE this code is compiled with full optimization!!!
  45.  */
  46. #ifndef XTAL_FREQ
  47. #define XTAL_FREQ 4MHZ /* Crystal frequency in MHz */
  48. #endif
  49. #define MHZ *1000 /* number of kHz in a MHz */
  50. #define KHZ *1 /* number of kHz in a kHz */
  51. #if XTAL_FREQ >= 12MHZ
  52. #define DelayUs(x) { unsigned char _dcnt; 
  53.   _dcnt = (x)*((XTAL_FREQ)/12MHZ); 
  54.   while(--_dcnt != 0) 
  55.   continue; }
  56. #else
  57. #define DelayUs(x) { unsigned char _dcnt; 
  58.   _dcnt = (x)/(12MHZ/(XTAL_FREQ))|1; 
  59.   while(--_dcnt != 0) 
  60.   continue; }
  61. #endif
  62. extern void DelayMs(unsigned char);
  63. extern void Delay1s(unsigned char);