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

📄 hw_timer.h

📁 toppers操作系统源码
💻 H
字号:
/* *  TOPPERS/JSP Kernel *      Toyohashi Open Platform for Embedded Real-Time Systems/ *      Just Standard Profile Kernel *  *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory *                              Toyohashi Univ. of Technology, JAPAN *  *  惧淡螟侯涪荚は·笆布の (1)×(4) の掘凤か·Free Software Foundation  *  によって给山されている GNU General Public License の Version 2 に淡 *  揭されている掘凤を塔たす眷圭に嘎り·塑ソフトウェア∈塑ソフトウェア *  を猖恃したものを崔むˉ笆布票じ∷を蝗脱ˇ剩澜ˇ猖恃ˇ浩芹邵∈笆布· *  网脱と钙ぶ∷することを痰浸で钓满するˉ *  (1) 塑ソフトウェアをソ〖スコ〖ドの妨で网脱する眷圭には·惧淡の螟侯 *      涪山绩·この网脱掘凤および布淡の痰瘦沮惮年が·そのままの妨でソ〖 *      スコ〖ド面に崔まれていることˉ *  (2) 塑ソフトウェアを·ライブラリ妨及など·戮のソフトウェア倡券に蝗 *      脱できる妨で浩芹邵する眷圭には·浩芹邵に燃うドキュメント∈网脱 *      荚マニュアルなど∷に·惧淡の螟侯涪山绩·この网脱掘凤および布淡 *      の痰瘦沮惮年を非很することˉ *  (3) 塑ソフトウェアを·怠达に寥み哈むなど·戮のソフトウェア倡券に蝗 *      脱できない妨で浩芹邵する眷圭には·肌のいずれかの掘凤を塔たすこ *      とˉ *    (a) 浩芹邵に燃うドキュメント∈网脱荚マニュアルなど∷に·惧淡の螟 *        侯涪山绩·この网脱掘凤および布淡の痰瘦沮惮年を非很することˉ *    (b) 浩芹邵の妨轮を·侍に年める数恕によって·TOPPERSプロジェクトに *        鼠桂することˉ *  (4) 塑ソフトウェアの网脱により木儡弄または粗儡弄に栏じるいかなる禄 *      巢からも·惧淡螟侯涪荚およびTOPPERSプロジェクトを倘勒することˉ *  *  塑ソフトウェアは·痰瘦沮で捏丁されているものであるˉ惧淡螟侯涪荚お *  よびTOPPERSプロジェクトは·塑ソフトウェアに簇して·その努脱材墙拉も *  崔めて·いかなる瘦沮も乖わないˉまた·塑ソフトウェアの网脱により木 *  儡弄または粗儡弄に栏じたいかなる禄巢に簇しても·その勒扦を砷わないˉ *  *  @(#) $Id: hw_timer.h,v 1.8 2003/06/20 11:44:42 honda Exp $ *//* *  CPU巴赂タイマモジュ〖ル∈SH3/4脱∷ *  TMU0を蝗脱 */#ifndef _HW_TIMER_H_#define _HW_TIMER_H_#include <s_services.h>/* *  タイマ充哈みハンドラのINTEVT戎规 */#define	INHNO_TIMER	TMU0_INTEVT#ifndef _MACRO_ONLY/* *  タイマ猛の柒婶山附の房 */typedef UW	CLOCK;#define TO_CLOCK(nume, deno)	(TIMER_CLOCK * (nume) / (deno))#define TO_USEC(clock)      ((clock) * 1000 / TIMER_CLOCK)/* *  肋年できる呵络のタイマ件袋∈帽疤は柒婶山附∷ */#define MAX_CLOCK	((CLOCK) 0xffffffff)/* *  タイマの附哼猛を充哈み券栏涟の猛とみなすかの冉们 */#define GET_TOLERANCE	100#define BEFORE_IREQ(clock) \        ((clock) >= TO_CLOCK(TIC_NUME, TIC_DENO) - GET_TOLERANCE)/* *  タイマの弹瓢借妄 * *  タイマを介袋步し·件袋弄なタイマ充哈み妥滇を券栏させるˉ */Inline voidhw_timer_initialize(){	CLOCK	cyc = TO_CLOCK(TIC_NUME, TIC_DENO);        	/*	 *  タイマ簇息の肋年	 */    sil_wrb_mem((VP)TMU_TSTR,                (sil_reb_mem((VP)TMU_TSTR) & ~TMU_STR0));  /* タイマ匿贿 */    assert(cyc <= MAX_CLOCK);		     /* タイマ惧嘎猛のチェック */    /* 尸件孺肋年、充り哈み钓材 */    sil_wrh_mem((VP)TMU_TCR0,(0x020 | TCR0_TPSC));        sil_wrw_mem((VP)TMU_TCOR0, cyc); /* timer constantレジスタをセット */    sil_wrw_mem((VP)TMU_TCNT0, cyc); /* カウンタ〖をセット */    /* タイマ0スタ〖ト */    sil_wrb_mem((VP)TMU_TSTR,                (sil_reb_mem((VP)TMU_TSTR) | TMU_STR0));        /*	 *  充哈み簇息の肋年	 */    define_int_plevel(TMU0_INTEVT,KTIM_INT_LV); /* 充り哈みレベル肋年(SF) */    /* 充り哈みレベル肋年(HW) */    sil_wrh_mem((VP)IPRA,                ((sil_reh_mem((VP)IPRA) & 0x0fff) | (KTIM_INT_LV<<12)));    /* 充り哈み妥滇をクリア */    sil_wrh_mem((VP)TMU_TCR0,                (sil_reh_mem((VP)TMU_TCR0) & ~TCR_UNF));}/* *  タイマ充哈み妥滇のクリア */Inline voidhw_timer_int_clear(){    /* 充り哈み妥滇をクリア */    sil_wrh_mem((VP)TMU_TCR0,                (sil_reh_mem((VP)TMU_TCR0) & ~TCR_UNF));    }/* *  タイマの匿贿借妄 */Inline voidhw_timer_terminate(){    /* タイマを匿贿 */    sil_wrb_mem((VP)TMU_TSTR,                (sil_reb_mem((VP)TMU_TSTR) & ~TMU_STR0));    /* 充り哈み妥滇をクリア */    sil_wrh_mem((VP)TMU_TCR0,0);}/* *  タイマの附哼猛の粕みだし * *  充哈み敦贿惰粗面で钙び叫すことˉ */Inline CLOCKhw_timer_get_current(void){	return(TO_CLOCK(TIC_NUME, TIC_DENO) - sil_rew_mem((VP)TMU_TCNT0));}Inline BOOLhw_timer_fetch_interrupt(void){	return(sil_reh_mem((VP)TMU_TCR0) & TCR_UNF);}#endif /* _MACRO_ONLY */#endif /* _HW_TIMER_H_ */

⌨️ 快捷键说明

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