I2C:ReadRegisters16
Jump to navigation
Jump to search
Request
| Index Word | Description | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| 0 |
| ||||||||
| 1 | u8, device ID | ||||||||
| 2 | u16, starting register | ||||||||
| 3 | u32, count |
Request Static Buffers
The handler for this IPC command expects the following 0x100-bytes after the beginning of the above command buffer:
| Index Word | Description |
|---|---|
| 0 | Descriptor for static buffer (id 0) |
| 1 | Output buffer pointer |
Response
| Index Word | Description | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| 0 |
| ||||||||
| 1 | Result code | ||||||||
| 2 | Descriptor for static buffer (id 0) | ||||||||
| 3 | Output buffer pointer |
Description
Reads a range of 16-bit I2C registers of the specified device sequentially to the given buffer.
The maximum output buffer size is 0x200 for the New3DS i2c-sysmodule, and 0x20 for the Old3DS version.
This is similar to I2C:ReadRegisters8, except this reads from 16-bit registers.
For example, assuming:
reg[5] = 0xAAAA, reg[6] = 0xBBBB, reg[7] = 0xCCCC, reg[8] = 0xDDDD
Then reading with count 4 and starting register 5 would result in:
outbuf[0] = 0xAAAA
outbuf[1] = 0xBBBB
outbuf[2] = 0xCCCC
outbuf[3] = 0xDDDD