timer-ucos.c

来自「君正早期ucos系统(只有早期的才不没有打包成库),MPLAYER,文件系统,图」· C语言 代码 · 共 72 行

C
72
字号
// Precise timer routines for LINUX  (C) LGB & A'rpi/ASTRAL#include "mplaylib.h"#include "mplayertm.h"#include "config.h"const char *timer_name =  "sleep ucos";extern void BUFF_TimeDly(unsigned int tm);extern int sthread_id;int usec_sleep(int usec_delay){//	F("%d\n",usec_delay);	//if(usec_delay < 1000) usec_delay = 1000;	BUFF_TimeDly(usec_delay);	}// Returns current time in microsecondsunsigned int GetTimer(void){	unsigned int dm[2];	JZ_GetTimer_20ms(dm);	//printf("%d,%d,%d\n",dm[0],dm[1],dm[1]*1000000+dm[0]);  return (dm[1]*20000+dm[0]);}  // Returns current time in millisecondsunsigned int GetTimerMS(void){	unsigned int dm[2];	JZ_GetTimer_20ms(dm);  return (dm[1]*20 + dm[0]/1000);}  static unsigned int RelativeTime = 0;// Returns time spent between now and last call in secondsfloat GetRelativeTime(void){  unsigned int t,r;  t= GetTimer();  r = t - RelativeTime;  RelativeTime = t;    return (float)r* 0.000001F;}// Initialize timer, must be called at least once at startvoid InitTimer(void){  GetRelativeTime();}#if 0void timer_main(){  float t=0;  int t1;  JZ_StartTimer();  InitTimer();  t1 = GetTimerMS();  while(1){   	GetTimer();      	t+=GetRelativeTime();  	OSTimeDly(100);  	t1 = GetTimerMS();  	printf("time= %d %d\r\n",(int)t,t1);   }}#endif

⌨️ 快捷键说明

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