source: anotherchoice/tags/jsp-1.4.4-full-UTF8/config/sh1/zunda_sh1/device.c@ 26

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

initial

File size: 4.4 KB
Line 
1/*
2 * TOPPERS/JSP Rose-RT Link Programs
3 * Toyohashi Open Platform for Embedded Real-Time Systems/
4 * Just Standard Profile Kernel
5 *
6 * Copyright (C) 2000-2004 by Embedded and Real-Time Systems Laboratory
7 * Toyohashi Univ. of Technology, JAPAN
8 * Copyright (C) 2003-2004 by CHUO ELECTRIC WORKS Co.,LTD. JAPAN
9 *
10 * 上記著作権者
11は,Free Software Foundation によってå…
12¬è¡¨ã•ã‚Œã¦ã„ã‚‹
13 * GNU General Public License の Version 2 に記述されている条件か,以
14 * 下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェア(本ソフトウェ
15 * アを改変したものを含む.以下同じ)を使用・複製・改変・再é…
16å¸ƒï¼ˆä»¥ä¸‹ï¼Œ
17 * 利用と呼ぶ)することを無償で許諾する.
18 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
19 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー
20 * スコード中に含まれていること.
21 * (2) 本ソフトウェアを再利用可能なバイナリコード(リロケータブルオブ
22 * ジェクトファイルやライブラリなど)の形で利用する場合には,利用
23 * に伴うドキュメント(利用者
24マニュアルなど)に,上記の著作権表示,
25 * この利用条件および下記の無保証規定を掲載すること.
26 * (3) 本ソフトウェアを再利用不可能なバイナリコードの形または機器に組
27 * み込んだ形で利用する場合には,次のいずれかの条件を満たすこと.
28 * (a) 利用に伴うドキュメント(利用者
29マニュアルなど)に,上記の著作
30 * 権表示,この利用条件および下記の無保証規定を掲載すること.
31 * (b) 利用の形æ…
32‹ã‚’,別に定める方法によって,上記著作権者
33に報告する
34 * こと.
35 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
36 * 害からも,上記著作権者
37をå…
38è²¬ã™ã‚‹ã“と.
39 *
40 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者
41は,
42 * 本ソフトウェアに関して,その適用可能性も含めて,いかなる保証も行わ
43 * ない.また,本ソフトウェアの利用により直接的または間接的に生じたい
44 * かなる損害に関しても,その責任を負わない.
45 *
46 */
47/*
48 * (株)中央製作所製μITRON搭載SH1CPUボード用
49 * LED,SW 制御関数
50 */
51#include <s_services.h>
52#include <sh1_sil.h>
53#include "zunda_sh1.h"
54#include "device.h"
55
56/*
57 * LEDの初期化
58 */
59void
60initial_led(void)
61{
62 set_led( LED1, OFF );
63 set_led( LED2, OFF );
64 set_led( LED3, OFF );
65}
66
67/*
68 * LEDの設定を行う
69 * arg1: LED1 - 3
70 * arg2: ON|OFF
71 */
72void
73set_led( int led, int req )
74{
75 if ( req != ON && req != OFF ) {
76 return;
77 }
78
79 switch ( led ) {
80 case LED1:
81 if( req == OFF ) {
82 sh1_orh_reg( PA_DR, LED_CTL1 );
83 } else {
84 sh1_anh_reg( PA_DR, ~LED_CTL1 );
85 }
86 break;
87 case LED2:
88 if( req == OFF ) {
89 sh1_orh_reg( PB_DR, LED_CTL2 );
90 } else {
91 sh1_anh_reg( PB_DR, ~LED_CTL2 );
92 }
93 break;
94 case LED3:
95 if( req == OFF ) {
96 sh1_orh_reg( PB_DR, LED_CTL3 );
97 } else {
98 sh1_anh_reg( PB_DR, ~LED_CTL3 );
99 }
100 break;
101 default:
102 break;
103 }
104}
105
106/*
107 * LEDの状æ…
108‹å–å¾—
109 * arg1: LED1 - 3
110 */
111int
112get_led( int led )
113{
114 switch ( led ) {
115 case LED1:
116 if ( (sil_reh_mem( PA_DR ) & LED_CTL1) == 0 ) {
117 return ON;
118 }
119 break;
120 case LED2:
121 if ( (sil_reh_mem( PB_DR ) & LED_CTL2) == 0 ) {
122 return ON;
123 }
124 break;
125 case LED3:
126 if ( (sil_reh_mem( PB_DR ) & LED_CTL3) == 0 ) {
127 return ON;
128 }
129 break;
130 default:
131 break;
132 }
133 return OFF;
134}
135
136/*
137 * ディップスイッチの状æ…
138‹å–å¾—
139 * return:ON OFF
140 * arg1:DSW11 〜 DSW14
141 */
142int
143get_dsw( int sw )
144{
145 UH key = 0;
146 int result = OFF;
147
148 key = sil_reh_mem( SW_DR );
149 switch ( sw ) {
150 case DSW11:
151 if ((key & DSW11) == 0 ) {
152 result = ON;
153 }
154 break;
155 case DSW12:
156 if ((key & DSW12) == 0 ) {
157 result = ON;
158 }
159 break;
160 case DSW13:
161 if ((key & DSW13) == 0 ) {
162 result = ON;
163 }
164 break;
165 case DSW14:
166 if ((key & DSW14) == 0 ) {
167 result = ON;
168 }
169 break;
170 default:
171 break;
172 }
173 return result;
174}
175
176/*
177 * ロータリースイッチの値取得
178 * return:スイッチの値
179 */
180int
181get_rsw(void)
182{
183 return (sil_reh_mem( SW_DR ) & RSW_CTL);
184}
185
Note: See TracBrowser for help on using the repository browser.