##### 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