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() コントロールポートの終了処理