delay.h

来自「PIC HiTech_C_Mike_Pearces_DS1821_thermos」· C头文件 代码 · 共 53 行

H
53
字号
/*
 *	Delay functions for HI-TECH C on the PIC
 *
 *	Functions available:
 *		DelayUs(x)	Delay specified number of microseconds
 *		DelayMs(x)	Delay specified number of milliseconds
 *
 *	Note that there are range limits: x must not exceed 255 - for xtal
 *	frequencies > 12MHz the range for DelayUs is even smaller.
 *	To use DelayUs it is only necessary to include this file; to use
 *	DelayMs you must include delay.c in your project.
 *
 */

/*	Set the crystal frequency in the CPP predefined symbols list in
	HPDPIC, or on the PICC commmand line, e.g.
	picc -DXTAL_FREQ=4MHZ
	
	or
	picc -DXTAL_FREQ=100KHZ
	
	Note that this is the crystal frequency, the CPU clock is
	divided by 4.

 *	MAKE SURE this code is compiled with full optimization!!!

 */
#ifndef DelayUs            //-- Stop Multipule entrys of this code!!!
// #ifndef	XTAL_FREQ
// #define	XTAL_FREQ	4MHZ		/* Crystal frequency in MHz */
// #endif

 #define	MHZ	*1000			/* number of kHz in a MHz */
 #define	KHZ	*1			/* number of kHz in a kHz */

 #if	XTAL_FREQ >= 12MHZ

  #define	DelayUs(x)	{ unsigned char _dcnt; \
			  _dcnt = (x)*((XTAL_FREQ)/12MHZ); \
			  while(--_dcnt != 0) \
				  continue; }
 #else

  #define	DelayUs(x)	{ unsigned char _dcnt; \
			  _dcnt = (x)/(12MHZ/(XTAL_FREQ))|1; \
			  while(--_dcnt != 0) \
				  continue; }
 #endif

extern void DelayMs(unsigned char);
#endif

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?