osEepromWrite.htm
2 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
<HTML>
<HEAD>
<TITLE>Manual for osEepromWrite</TITLE>
</HEAD>
<BODY>
<P>
<B><FONT FACE="Arial">osEepromWrite(3P) <BR>
</FONT></B>
<P>
<B>関数名<BR>
</B>
<P>
osEepromRead, osEepromWrite
<P>
→ EEPROMのリード/ライト
<BR>
<P>
<B>構文<BR>
</B>
<P>
#include <ultra64.h><P>
s32 osEepromRead(OSMesgQueue *mq, u8 address, u8 *buffer);<BR>
<B>s32 osEepromWrite(OSMesgQueue *mq, u8 address, u8 *buffer);
<BR>
</B>
<P>
<B>説明<BR>
</B>
<P>
関数 osEepromRead は、EEPROM に対してリードコマンドを発行し、
address で指定したアドレスから、8バイト分のデータを読み込みます。
また、関数<B>osEepromWrite</B>は、EEPROM に対してライトコマンドを発行して、
address で指定したアドレスから、8バイト分のデータを書き込みます。
<P>
データ格納用バッファ bufferには、
8バイトのデータが入るだけのサイズを用意しておかなければならなりません。
メッセージキュー mq は、OS_EVENT_SI
イベントに関連付けて初期設定されたメッセージキューです。
詳しくは、<A HREF="osSetEventMesg.htm" >osSetEventMesg</A>(3P)
を参照してください。
アドレス address は、EEPROM ブロックアドレスであることに注意してください。
8バイト単位のブロックですので、実際のアドレスを8で割った値を指定する
必要があります。
<P>
関数 osEepromRead、および、関数 osEepromWriteでは、8バイト(1ブロック)の
データの読み書きしかできません。8バイトを越えるサイズの読み書きを行なうには、
関数 <A HREF="osEepromLongRead.htm">osEepromLongRead </A>(3p),
<A HREF="osEepromLongWrite.htm">osEepromLongWrite </A>(3p)
を使用すると便利です。
<P>
EEPROMの書き込みコマンドは、書き込み終了までに最大でおよそ15ミリ秒の
時間がかかります。したがって、
<B>osEepromWrite</B>を連続して呼び出す場合には、
システム全体のパフォーマンスを落とさないようにするために、
タイマの使用等が必要です。
<BR>
<P>
<B>参照<BR>
</B>
<P>
<A HREF="osContInit.htm">osContInit </A>(3P), <A HREF="osEepromProbe.htm">osEepromProbe </A>(3p),
<A HREF="osEepromLongRead.htm">osEepromLongRead </A>(3p), <A HREF="osEepromLongWrite.htm">osEepromLongWrite </A>(3p).
<BR>
</BODY>
</HTML>