delay.c

来自「Digital Clock Source using ATmega8515 an」· C语言 代码 · 共 45 行

C
45
字号
//------------------------------------------------------------------------//
// X-tal 16MHz 扁霖栏肺 累己登菌促.
// 促弗 林颇荐绰 嘎霸 荐沥窍咯具 茄促.

#include "delay.h"


//------------------------------------------------------------------------//
/* max delay time to 256us */
void delay_us(unsigned char val)
{
	register unsigned char i;

	for(i=0; i<val; i++){		// 4 cycle
		asm ("nop");	// 1 cycle
		asm ("nop");	// 1 cycle
		asm ("nop");	// 1 cycle
		asm ("nop");	// 1 cycle
		asm ("nop");	// 1 cycle
		asm ("nop");	// 1 cycle
		asm ("nop");	// 1 cycle
		asm ("nop");	// 1 cycle
		asm ("nop");	// 1 cycle
		asm ("nop");	// 1 cycle
		asm ("nop");	// 1 cycle
		asm ("nop");	// 1 cycle (total 16cycle = 1us) for 16MHz
	}
}


//------------------------------------------------------------------------//
/* max dealy time to 65536 ms, 65.536 sec */
void delay_ms(unsigned int val)
{
	register unsigned int i;

	for(i=0; i<val; i++){		// 4 cycle(0.25 us)
		delay_us(250);			// 250 us
		delay_us(250);			// 250 us
		delay_us(250);			// 250 us
		delay_us(249);			// 249 us (total 999.25 us = 0.99925 ms)
	}
}

⌨️ 快捷键说明

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