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

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 work area 2KB */
	gMapleRecvBuf[1],/* A1 work area 2KB */
	gMapleRecvBuf[2],/* A2 work area 2KB */
	gMapleRecvBuf[3],/* B0 work area 2KB */
	gMapleRecvBuf[4],/* B1 work area 2KB */
	gMapleRecvBuf[5],/* B2 work area 2KB */
	gMapleRecvBuf[6],/* C0 work area 2KB */
	gMapleRecvBuf[7],/* C1 work area 2KB */
	gMapleRecvBuf[8],/* C2 work area 2KB */
	gMapleRecvBuf[9],/* D0 work area 2KB */
	gMapleRecvBuf[10],/* D1 work area 2KB */
	gMapleRecvBuf[11],/* D2 work area 2KB */
};
pdInitPeripheralEx( PDD_PLOGIC_ACTIVE, gMapleDevs,
	gMapleRecvBufTbl, gMapleSendBuf,
	sizeof(gMapleDevs) / sizeof(gMapleDevs[0]) );

参照

pdInitPeripheral()
 コントロールポートの初期化
pdExitPeripheral()
 コントロールポートの終了処理

pdInitPeripheralEx
COPYRIGHT © SEGA ENTERPRISES, LTD., 1998-2000