delay.h

来自「这是一个lm016l液晶显示的驱动文件」· C头文件 代码 · 共 63 行

H
63
字号

#ifndef	XTAL_FREQ

//=== Must be defined by user ===

#define	XTAL_FREQ	20MHZ

//===============================

#endif

#define	MHZ	*1000L
#define	KHZ	*1

#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);
extern void DelayS(unsigned char);

void
DelayMs(unsigned char cnt)
{
#if	XTAL_FREQ <= 12MHZ
	do {
		DelayUs(996);
	} while(--cnt);
#endif

#if XTAL_FREQ > 12MHZ	
	unsigned char	i;
	do {
		i = 4;
		do {
			DelayUs(250);
		} while(--i);
	} while(--cnt);
#endif
}

void
DelayS(unsigned char cnt)
{
	unsigned char	i;
	do {
		i = 4;
		do {
			DelayMs(250);
		} while(--i);
	} while(--cnt);
}

⌨️ 快捷键说明

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