isig_tim.c

来自「iTRON4.0最新操作系统」· C语言 代码 · 共 91 行

C
91
字号
/* ------------------------------------------------------------------------ *//*  Hyper Operating System V4  μITRON4.0慌屯 Real-Time OS                  *//*    ITRONカ〖ネル システム箕粗瓷妄                                        *//*                                                                          *//*                                  Copyright (C) 1998-2002 by Project HOS  *//*                                  http://sourceforge.jp/projects/hos/     *//* ------------------------------------------------------------------------ */#include "knl_tim.h"/* タイマリスト瓷妄 */T_KERNEL_TIM *kernel_tml_head;		/* タイマリスト黎片疤弥 */T_KERNEL_TIM *kernel_tml_ptr;		/* タイマリストポインタ *//* タイムティックの丁惦 */ER isig_tim(void){	T_KERNEL_TIM* tim_ptr;	UW            prev_tim;	RELTIM        tic;	/* 裁换するタイムティックを换叫 */	/* 毋えば 10/3 ms 件袋なら 3, 3, 4, 3, 3, 4, ... とカウントしていく */	kernel_tic_cnt--;	if ( kernel_tic_cnt < kernel_tic_mod )	{		tic = kernel_tic_div + 1;	/* 充り磊れない尸を输赖 */	}	else	{		tic = kernel_tic_div;	}	if ( kernel_tic_cnt == 0 )	{		kernel_tic_cnt = kernel_tic_deno;	}	mknl_loc_sys();		/* システムのロック */	/* システムタイムに裁换 */	prev_tim = kernel_systim.ltime;	kernel_systim.ltime += tic;	if ( kernel_systim.ltime < prev_tim )	/* 峰惧がりがあるなら */	{		kernel_systim.utime++;	}		/* タイマオブジェクトのハンドラ钙び叫し */	if ( kernel_tml_head != NULL )	{		/* 浮瑚ポインタ肋年 */		kernel_tml_ptr = kernel_tml_head;				do /* リスト琐萨まで帆り手し */		{			/* 肌のポインタを祸涟に肋年 */			tim_ptr        = kernel_tml_ptr;			kernel_tml_ptr = tim_ptr->next;						/* タイマハンドラ钙び叫し */			tim_ptr->timhdr(tim_ptr, tic);						/* ハンドラ柒で猴近された眷圭 */			if ( kernel_tml_ptr == NULL )			{				break;			}		} while ( kernel_tml_ptr != kernel_tml_head );				/* 浮瑚ポインタのクリア */		kernel_tml_ptr = NULL;	}		/* タイムアウト略ち乖误のタスク弹静 */	mknl_tic_tmout(tic);	/* タイムアウトキュ〖にタイムティックを丁惦 */		mknl_unl_sys();			/* システムのロック豺近 */		return E_OK;}/* ------------------------------------------------------------------------ *//*  Copyright (C) 1998-2002 by Project HOS                                  *//* ------------------------------------------------------------------------ */

⌨️ 快捷键说明

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