⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 udelay.c

📁 增加了tftp功能的vivi代码
💻 C
字号:
#include "udelay.h"
int timer_load_val;
static unsigned long lastdec;
static unsigned long timestamp;
 
void init_timer(void)
{
	rTCFG0 = 0x0f00;
		timer_load_val = 15625;
	
	/* load value for 10 ms timeout */
	lastdec = rTCNTB4 = timer_load_val;
	/* auto load, manual update of Timer 4 */
	rTCON = 0x600000;
	/* auto load, start Timer 4 */
	rTCON = 0x500000;
	timestamp = 0;
}
unsigned long get_timer_masked (void)
{
	unsigned long now = READ_TIMER;

	if (lastdec >= now) {
		/* normal mode */
		timestamp += lastdec - now;
	} else {
		/* we have an overflow ... */
		timestamp += lastdec + timer_load_val - now;
	}
	lastdec = now;

	return timestamp;
}
unsigned long get_timer (unsigned long base)
{
	return get_timer_masked () - base;
}
void delay (unsigned long usec)
{
	unsigned long tmo;

	tmo = usec / 1000;
	tmo *= (timer_load_val * 100);
	tmo /= 1000;

	tmo += get_timer (0);

	while (get_timer_masked () < tmo)
		/*NOP*/;
}

⌨️ 快捷键说明

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