Shinobiライブラリ - ペリフェラルデータ関数

pdInitPeripheralEx

コントロールポートの拡張初期化

書式

void pdInitPeripheralEx( plogic, *pertbl, **recvbuf, *sendbuf, num ) 
Sint32 plogic 
Sint32 *pertbl 
void **recvbuf 
void *sendbuf 
Sint32 num 

引数

plogic   論理モード
pertbl   使用ペリフェラルテーブル
recvbuf   コントロールポート受信バッファアドレステーブル
sendbuf   コントロールポート送信バッファアドレス
num   ペリフェラル数

戻り値

なし

解説

コントローラ系ペリフェラルを使用するライブラリの拡張初期化を行います。

通常の初期化を行う関数pdInitPeripheralと違う点は、 使用するコントロールポートを限定することで、 バッファサイズの節約を行えることとポートアクセスにかかる時間を節約できることです。

論理モードを指定する引数 plogic には、PDS_PERIPHERAL構造体のデジタルボタン情報の正論理、 負論理を選択することができます。

 論理モード定義   意味 
 PDD_PLOGIC_ACTIVE   正論理 
 PDD_PLOGIC_NEGATIVE   負論理 

受信、送信バッファは必ず必要分確保し、パラメータは矛盾のないように設定してください。


用例

/* Receive Buffer */
Uint8 gMapleRecvBuf[12][PDM_WORK_SIZE(1) + 32];

/* Send Buffer */
Uint8 gMapleSendBuf[PDM_WORK_SIZE(12) + 32];

const Sint32 gMapleDevs[] = {
	PDD_PORT_A0, PDD_PORT_A1, PDD_PORT_A2,
	PDD_PORT_B0, PDD_PORT_B1, PDD_PORT_B2,
	PDD_PORT_C0, PDD_PORT_C1, PDD_PORT_C2,
	PDD_PORT_D0, PDD_PORT_D1, PDD_PORT_D2,
};

const void* gMapleRecvBufTbl[] = {
	gMapleRecvBuf[0],/* A0のワーク2KB */
	gMapleRecvBuf[1],/* A1のワーク2KB */
	gMapleRecvBuf[2],/* A2のワーク2KB */
	gMapleRecvBuf[3],/* B0のワーク2KB */
	gMapleRecvBuf[4],/* B1のワーク2KB */
	gMapleRecvBuf[5],/* B2のワーク2KB */
	gMapleRecvBuf[6],/* C0のワーク2KB */
	gMapleRecvBuf[7],/* C1のワーク2KB */
	gMapleRecvBuf[8],/* C2のワーク2KB */
	gMapleRecvBuf[9],/* D0のワーク2KB */
	gMapleRecvBuf[10],/* D1のワーク2KB */
	gMapleRecvBuf[11],/* D2のワーク2KB */
};

pdInitPeripheralEx( PDD_PLOGIC_ACTIVE, gMapleDevs,
	gMapleRecvBufTbl, gMapleSendBuf,
	sizeof(gMapleDevs) / sizeof(gMapleDevs[0]) );

参照

pdInitPeripheral()
pdExitPeripheral()

pdInitPeripheralEx
COPYRIGHT © SEGA ENTERPRISES, LTD., 1998,1999