I2C Registers: Difference between revisions
Documented stuff and cleaned up a bit more |
|||
Line 309: | Line 309: | ||
| s | | s | ||
| ro | | ro | ||
| | | Received interrupt bitmask, see register 0x18 for possible values | ||
If no interrupt was received this register is 0 | |||
If | |||
|- | |- | ||
| 0x14 | | 0x14 | ||
Line 350: | Line 336: | ||
| s | | s | ||
| rw | | rw | ||
| Interrupt mask (0=enabled,1=disabled) | | Interrupt mask for register 0x10 (0=enabled,1=disabled) | ||
bit00: Power button press | |||
bit01: Power button held (the 3DS turns off regardless after a fixed time) | |||
bit02: HOME button press | |||
bit03: HOME button release | |||
bit04: WiFi switch button | |||
bit05: Shell close | |||
bit06: Shell open | |||
bit07: Fatal hardware condition([[Services#Notifications|?]]) | |||
bit08: Charger removed | |||
bit09: Charger plugged in | |||
bit10: ??? (Power Management related?) | |||
bit11: ??? (HID related) | bit11: ??? (HID related) | ||
bit12: | bit12: HID update | ||
bit13: Battery dead(?) | |||
bit14: ??? (Power Management related?) | |||
bit15: ??? (Power Management related?) | |||
bit22: Volume slider position change | |||
bit24: ??? (???) | |||
bit25: ??? (???) | |||
bit26: ??? (???) | |||
bit27: ??? (???) | |||
bit28: ??? (???) | |||
bit29: ??? (???) | |||
bit30: forced off my mcu sysmodule | bit30: forced off my mcu sysmodule | ||
bit31: forced off my mcu sysmodule | bit31: forced off my mcu sysmodule | ||
Line 434: | Line 441: | ||
|- | |- | ||
| 0x29 | | 0x29 | ||
| | | ds(0x64) | ||
| ro / rw | | ro / rw | ||
| | | Empty battery pattern holder, repeats all written bytes | ||
|- | |- | ||
| 0x2A | | 0x2A | ||
Line 472: | Line 479: | ||
| s | | s | ||
| rw | | rw | ||
| RTC time (system clock). 7 bytes are read from this. The upper nibble of each byte encodes 10s (BCD), so each byte is post-processed with (byte & 0xF) + (10 * (byte >> 4)). | | RTC time (system clock). 7 bytes are read from this. The upper nibble of each byte encodes 10s (BCD), so each byte is post-processed with (byte & 0xF) + (10 * (byte >> 4)). | ||
byte 0: seconds | |||
byte 1: minutes | |||
byte 2: hours | |||
byte 3: current day of the week (unused) | |||
byte 4: days | |||
byte 5: months | |||
byte 6: years | |||
byte 7: leap year counter (unused) | |||
|- | |- | ||
| 0x37 | | 0x37 | ||
Line 500: | Line 515: | ||
| s | | s | ||
| rw | | rw | ||
| ? | | Pedometer state (?) | ||
|- | |- | ||
| 0x41 | | 0x41 | ||
Line 563: | Line 578: | ||
|- | |- | ||
| 0x4F | | 0x4F | ||
| | | 0x156 | ||
| ro | | ro | ||
| | | ??? | ||
|- | |- | ||
| 0x50 | | 0x50 | ||
| s | |||
| rw | |||
| ??? | |||
|- | |||
| 0x51 | |||
| s | |||
| rw | |||
| ??? | |||
|- | |||
| 0x52 | |||
- 0x57 | - 0x57 | ||
| s | | s | ||
Line 595: | Line 620: | ||
|- | |- | ||
| 0x60 | | 0x60 | ||
| | | ds(1) | ||
| ro | | ro | ||
first byte is wo | first byte is wo | ||
Line 603: | Line 628: | ||
|- | |- | ||
| 0x61 | | 0x61 | ||
| 0x100 | | ds(0x100) | ||
| rw | | rw | ||
| Writing to this register pushes values on top of register 0x60's stack. Reading from this register doesn't advance the stack. | | Writing to this register pushes values on top of register 0x60's stack. Reading from this register doesn't advance the stack. |