delay.h

来自「ATmega128的GPS例子」· C头文件 代码 · 共 107 行

H
107
字号
#ifndef	_DELAY_H
#define	_DELAY_H

// mcu:avr   crystal=8MHz

/**************************************************************
**函数功能:延时1us
**输入参数:无
**返回值:无
**在本函数外定义变量:无
**调用的函数:NOP()
**************************************************************/
void Delay_1us(void);

/**************************************************************
**函数功能:us级延时
**输入参数:xus:延时us数
**返回值:无
**在本函数外定义变量:无
**调用的函数:Delay_1us()
**************************************************************/
void Delay_Us(unsigned char xus);

/**************************************************************
**函数功能:延时1ms
**输入参数:无
**返回值:无
**在本函数外定义变量:无
**调用的函数:NOP()
**************************************************************/
void Delay_1ms(void);

/**************************************************************
**函数功能:ms级延时
**输入参数:xms:延时ms数
**返回值:无
**在本函数外定义变量:无
**调用的函数:Delay_1ms()
**************************************************************/
void Delay_Ms(unsigned int xms);

/**************************************************************
**函数功能:10us级延时
**输入参数:x10us:延时x10us数
**返回值:无
**在本函数外定义变量:无
**调用的函数:无
**************************************************************/
void Delay10us(Word x10us);


void Delay_1us()
{
	NOP();
}

void Delay_Us(unsigned char xus)
{
	unsigned char i;
	for(i=0;i<xus;i++)
		Delay_1us();
}

void Delay_1ms(void)
{
	unsigned int i;
	for(i=0;i<1142;i++)
		;
}

void Delay_Ms(Word xms) //crystal=8MHz
{
	Word i,j; //variable:declare Word
	for(i=0; i<xms; i++)
		for(j=0; j<498;j++)
		{
			NOP();
			NOP();
			NOP();
			NOP();
			NOP();
			NOP();
			NOP();
			NOP();
			NOP();
		}
}

void Delay10us(Word x10us)//crystal=8MHz
{
	Word i;Byte j; //variable:declare Word
	for(i=0; i<x10us; i++)
	{
			for(j=0;j<2;j++)
			{
			 	NOP();
				NOP();
				NOP();
			}
	}
}

#endif



⌨️ 快捷键说明

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