delay.c

来自「采用Atmega16的变频式超声波发生器的源代码」· C语言 代码 · 共 57 行

C
57
字号
#include"main.h"


void delay_us(uint time) //4us to 1024us(1ms)
{
sbi(TIFR,TOV0);
sbi(TCCR0,CS00);
TCNT0=(255-(time>>2)); //   1/(16000000/64)=4us  time>>2 is faster than time/4
loop_until_bit_is_set(TIFR,TOV0);
}

void delay_ms(uint time)
{
for(;time>0;time--)
delay_us(1000);
}
/*
extern const unsigned char xtal;

void delay_1ms(void)
{   uint i;
	for(i=1;i<(xtal*143-2);i++); //xtal unit : MHZ
	}
	
void delay_ms(uint n)	
{
	for(;n>0;n--)
	delay_1ms();
	}
	
void delay_1us(void) 
{
asm("nop");
asm("nop");
asm("nop");
asm("nop");
}

void delay_us(uint n)
{n<<=1;
	n-=2;
	do
	{
		n--;
		asm("nop");
		asm("nop");
	}
		while(n>0);
		asm("nop");
		asm("nop");
		asm("nop");
}
*/
//#define _delay_ms delay_ms
//#define _delay_us delay_us

⌨️ 快捷键说明

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