delay.c

来自「W3510A PPPoE code for network use」· C语言 代码 · 共 50 行

C
50
字号
#include "delay.h"

void wait_1us(uint8 cnt)
{
	/* 16MHz : 16 CLK 1us : 1 + 1 + (1+1)*4 + 1 + (2 + 1)*(cnt) + 1  + 1*/ 
	asm volatile
	(
		"movw	r24, %A0"		"\n\t"
		"L_US:"				"\n\t"
		"ldi	r26, lo8(4)"	 	"\n\t"
		"L_US0:"			"\n\t"
		"dec	r26"			"\n\t"
		"brne	L_US0"			"\n\t"
		"sbiw	r24, 1"			"\n\t"
		"brne	L_US"			"\n\t"
		"nop"				"\n\t"
		:  :"r" (cnt)
	);	
}

/*
********************************************************************************
*               WAIT FUNCTION
*
* Description : This function waits for 10 milliseconds
* Arguments   : cnt - is the time to wait
* Returns     : None
* Note        : Internal Function
********************************************************************************
*/
void wait_10ms(uint8 cnt)
{
	for (; cnt; cnt--) wait_1ms(10);
}


/*
********************************************************************************
*               WAIT FUNCTION
*
* Description : This function waits for 1 milliseconds
* Arguments   : cnt - is the time to wait
* Returns     : None
* Note        : Internal Function
********************************************************************************
*/
void wait_1ms(uint8 cnt)
{
	for (; cnt; cnt--) wait_1us(1000);
}

⌨️ 快捷键说明

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