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

📄 profile.c

📁 2440 开发板的测试程序。包括uart,iic,lcd
💻 C
字号:
/**************************************************************
 NAME: profile.c
 DESC: To measuure the USB download speed, the WDT is used.
	   To measure up to large time, The WDT interrupt is used.
 HISTORY:
 MAR.25.2002:purnnamu:  
	 S3C2400X profile.c is ported for S3C2410X.
 **************************************************************/
#include "def.h"
#include "option.h"
#include "2440addr.h"
#include "2440lib.h"
#include "2440slib.h" 

#include <stdarg.h>
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
#include <ctype.h>

/************************* Timer ********************************/
static int intCount;

void __irq IsrWatchdog( void );

void Timer_InitEx( void )
{
	intCount = 0;	
	pISR_WDT_AC97 = ( U32 ) IsrWatchdog;
	ClearPending( BIT_WDT_AC97 );
	rSUBSRCPND = BIT_SUB_WDT;
	rINTMSK &= ~( BIT_WDT_AC97 );
	rINTSUBMSK &= ~( BIT_SUB_WDT );
}


void Timer_StartEx( void )
{
	int divider = 0;
	rWTCON = ( ( PCLK / 1000000 - 1 ) << 8 ) | ( 0 << 3 ) | ( 1 << 2 );	// 16us
	rWTDAT = 0xffff;
	rWTCNT = 0xffff;   

	// 1/16/(65+1),interrupt enable,reset disable,watchdog enable
	rWTCON = ( ( PCLK / 1000000 - 1 ) << 8 ) | ( 0 << 3 ) | ( 1 << 2 ) | ( 0 << 0 ) | ( 1 << 5 );
}



float Timer_StopEx( void )
{
	int count;
	rWTCON = ( ( PCLK / 1000000 - 1 ) << 8 );
	rINTMSK |= BIT_WDT_AC97;
	rINTSUBMSK |= BIT_SUB_WDT;
	count = ( 0xffff - rWTCNT ) + ( intCount * 0xffff );
	return ( ( float ) count * ( 16e-6 ) );
}


void __irq IsrWatchdog( void )
{
	rINTSUBMSK |= BIT_SUB_WDT;
	rSRCPND = BIT_WDT_AC97;	//Clear pending bit
	rINTPND = BIT_WDT_AC97;
	 rINTPND;	//Prevent an double interrupt pending
	rSUBSRCPND = BIT_SUB_WDT;
	intCount++;   	
	rINTSUBMSK &= ~BIT_SUB_WDT;
}



⌨️ 快捷键说明

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