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

📄 interrupts.c

📁 讲述LPC2468在无操作系统条件下使用YAFFS文件系统是如何实现的以及完整的测试代码,代码部分详见lpc2468_yaffs2.rar
💻 C
字号:
#include "config.h"#include "project.h"#define TIMER_LOAD_VAL 0xffff#define READ_TIMER (0xFFFFFFFF - T0TC)static unsigned int timestamp = 0;static unsigned int lastdec;unsigned int  get_timer_masked (void);void reset_timer (void){	reset_timer_masked ();}unsigned int  get_timer (unsigned int  base){	return get_timer_masked() - base;}void set_timer (unsigned int  t){	timestamp = t;}void udelay (unsigned long usec){//	printf("udelay = %d, T0TC = %d\n", usec, T0TC);//#if 0  unsigned int  tmo;//#if defined (CONFIG_LPC2292) || defined(CONFIG_LPC2468)#if defined(CONFIG_LPC2468)  tmo = (usec * CFG_HZ) / 1000000;#else	tmo = usec / 1000;	tmo *= CFG_HZ;	tmo /= 1000;#endif//	printf("udelay = %d, tmo = %d\n", usec, tmo);	tmo += get_timer (0);//	printf("udelay = %d, tmo = %d\n", usec, tmo);	while (get_timer_masked () < tmo)	{		printf("T0TC = %d\n", T0TC);		__asm__ __volatile__(" nop"); // /*NOP*/;	}//#endif}void reset_timer_masked (void){	/* reset time */	lastdec = READ_TIMER;	timestamp = 0;}unsigned int  get_timer_masked (void){	unsigned int  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;}void udelay_masked (unsigned long usec){	unsigned int  tmo;	unsigned int  endtime;	signed long diff;	if (usec >= 1000) {		tmo = usec / 1000;		tmo *= CFG_HZ;		tmo /= 1000;	} else {		tmo = usec * CFG_HZ;		tmo /= (1000*1000);	}	endtime = get_timer_masked () + tmo;	do {		unsigned int  now = get_timer_masked ();		diff = endtime - now;	} while (diff >= 0);}void ndelay(unsigned long nsec){  unsigned int  loops = nsec / 600;  while (loops-- > 0)  {    __asm__ __volatile__ (" nop");  }}

⌨️ 快捷键说明

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