source: anotherchoice/tags/jsp-1.4.4-full-UTF8/config/s1c33/luxun2/hw_timer.h@ 26

Last change on this file since 26 was 26, checked in by ykominami, 10 years ago

initial

File size: 4.3 KB
Line 
1/*
2 * TOPPERS/JSP Kernel
3 * Toyohashi Open Platform for Embedded Real-Time Systems/
4 * Just Standard Profile Kernel
5 *
6 * Copyright (C) 2000 by Embedded and Real-Time Systems Laboratory
7 * Toyohashi Univ. of Technology, JAPAN
8 *
9 * Copyright (C) 2004 by SEIKO EPSON Corp, JAPAN
10 *
11 * 上記著作権者
12は,以下の (1)〜(4) の条件か,Free Software Foundation
13 * によってå…
14¬è¡¨ã•ã‚Œã¦ã„ã‚‹ GNU General Public License の Version 2 に記
15 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア
16 * を改変したものを含む.以下同じ)を使用・複製・改変・再é…
17å¸ƒï¼ˆä»¥ä¸‹ï¼Œ
18 * 利用と呼ぶ)することを無償で許諾する.
19 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
20 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー
21 * スコード中に含まれていること.
22 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
23 * 用できる形で再é…
24å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é…
25å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
26 * 者
27マニュアルなど)に,上記の著作権表示,この利用条件および下記
28 * の無保証規定を掲載すること.
29 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
30 * 用できない形で再é…
31å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
32 * と.
33 * (a) 再é…
34å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€…
35マニュアルなど)に,上記の著
36 * 作権表示,この利用条件および下記の無保証規定を掲載すること.
37 * (b) 再é…
38å¸ƒã®å½¢æ…
39‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
40 * 報告すること.
41 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
42 * 害からも,上記著作権者
43およびTOPPERSプロジェクトをå…
44è²¬ã™ã‚‹ã“と.
45 *
46 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者
47お
48 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も
49 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直
50 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない.
51 *
52 */
53
54#ifndef _HW_TIMER_H_
55#define _HW_TIMER_H_
56
57#include "s_services.h"
58
59/*
60 * タイマ割込みハンドラのベクタ番号
61 */
62#define INHNO_TIMER S1C33_INHNO_P16TIMER1B
63
64#define S1C33_P16TIMER_CLOCK 40000000
65
66#ifndef _MACRO_ONLY
67/*
68 * 外部関数の参ç…
69§
70 */
71extern ER ena_int(INHNO);
72extern ER dis_int(INHNO);
73
74/*
75 * 16ビットタイマ1の初期化
76 */
77Inline void
78hw_timer_initialize(void)
79{
80 /*
81 * 16ビットタイマ1B 割込み禁止
82 */
83 dis_int(INHNO_TIMER);
84
85 /*
86 * 16ビットタイマ1B 割込み要因クリア
87 */
88 (*(s1c33Intc_t *) S1C33_INTC_BASE).bIntFactor[2] |= 0x40;
89
90 /*
91 * 16bitタイマ1設定
92 *
93 * タイマクロックON 16分周 16ビットタイマ1B 周期 1ms
94 */
95 (*(s1c33TimerControl_t *) S1C33_TIMER_CONTROL_BASE).bP16ClkCtrl[1]
96 = 0x0b;
97 (*(s1c33P16Timer_t *) S1C33_P16TIMER_BASE).stChannel[1].uwComp[1]
98 = ((S1C33_P16TIMER_CLOCK * 1) / (16 * 1000));
99
100 /*
101 * 16ビットタイマリセット
102 */
103 (*(s1c33P16Timer_t *) S1C33_P16TIMER_BASE).stChannel[1].bControl = 0x02;
104
105 /*
106 * 16ビットタイマ1B 割込み許可
107 */
108 ena_int(INHNO_TIMER);
109
110
111 /*
112 * 16ビットタイマ1 動作開始
113 */
114 (*(s1c33P16Timer_t *) S1C33_P16TIMER_BASE).stChannel[1].bControl = 0x01;
115
116 return;
117}
118
119/*
120 * 16ビットタイマ1割込み要因のクリア
121 */
122Inline void
123hw_timer_int_clear(void)
124{
125 /*
126 * 16ビットタイマ1B 割込み要因クリア
127 */
128 (*(s1c33Intc_t *) S1C33_INTC_BASE).bIntFactor[2] |= 0x40;
129
130 return;
131}
132
133/*
134 * 16ビットタイマ1の停止
135 */
136Inline void
137hw_timer_terminate(void)
138{
139 /*
140 * 16ビットタイマ1B 割込み禁止
141 */
142 dis_int(INHNO_TIMER);
143
144 /*
145 * 16ビットタイマ1停止
146 */
147 (*(s1c33P16Timer_t *) S1C33_P16TIMER_BASE).stChannel[1].bControl = 0x00;
148
149 return;
150}
151
152#endif /* _MACRO_ONLY */
153#endif /* _HW_TIMER_H_ */
Note: See TracBrowser for help on using the repository browser.