I2C:WriteRegisters16: Difference between revisions
Jump to navigation
Jump to search
TimmSkiller (talk | contribs) Created page with "=Request= {{IPC/Request}} {{IPC/RequestHeader|0x000C|3|2}} {{IPC/RequestEntry|u8, device ID}} {{IPC/RequestEntry|u16, starting register}} {{IPC/RequestEntry|u32, size}} {{IPC/TranslateStaticBuffer|Input buffer pointer|1}} {{IPC/RequestEnd}} =Response= {{IPC/Request}} {{#vardefine:ipc_offset|0}} {{IPC/RequestHeader|0x000C|1|0}} {{IPC/RequestEntry|Result code}} {{IPC/RequestEnd}} =Description= Writes the given buffer sequentially to a range of 16-bit I2C registers of..." |
TimmSkiller (talk | contribs) No edit summary |
||
| Line 20: | Line 20: | ||
=Description= | =Description= | ||
Writes the given buffer sequentially to a range of 16-bit I2C registers of the specified device. | Writes the given buffer sequentially to a range of 16-bit I2C registers of the specified device. | ||
The maximum input buffer size is 0x200 for the New3DS i2c-sysmodule, and 0x10 for the Old3DS version. | |||
For example, writing a buffer of consisting of <code>{ 0xAAAA, 0xBBBB, 0xCCCC, 0xDDDD }</code> with starting register 0x5 would do the following: | For example, writing a buffer of consisting of <code>{ 0xAAAA, 0xBBBB, 0xCCCC, 0xDDDD }</code> with starting register 0x5 would do the following: | ||
Latest revision as of 16:41, 28 May 2026
Request
| Index Word | Description | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| 0 |
| ||||||||
| 1 | u8, device ID | ||||||||
| 2 | u16, starting register | ||||||||
| 3 | u32, size | ||||||||
| 4 | Descriptor for static buffer (id 1) | ||||||||
| 5 | Input buffer pointer |
Response
| Index Word | Description | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| 0 |
| ||||||||
| 1 | Result code |
Description
Writes the given buffer sequentially to a range of 16-bit I2C registers of the specified device.
The maximum input buffer size is 0x200 for the New3DS i2c-sysmodule, and 0x10 for the Old3DS version.
For example, writing a buffer of consisting of { 0xAAAA, 0xBBBB, 0xCCCC, 0xDDDD } with starting register 0x5 would do the following:
reg[0x5] = 0xAAAA
reg[0x6] = 0xBBBB
reg[0x7] = 0xCCCC
reg[0x8] = 0xDDDD
This is similar to I2C:WriteRegisters8 except this uses 16-bit registers.