Difference between revisions of "TIMER Registers"
Jump to navigation
Jump to search
(Kernel9 treats F/64 as (ARM 9 clockrate)/128) |
|||
(5 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
− | + | There are 4 timers. These timers run at a frequency of 67,027,964.0 ± 2<sup>-32</sup> Hz (i.e. exactly half the ARM9 clock frequency). | |
+ | |||
+ | = Registers = | ||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
− | ! | + | ! Old3DS |
− | ! | + | ! Name |
− | ! | + | ! Address |
− | + | ! Width | |
− | + | ! Used by | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
|- | |- | ||
− | | | + | | style="background: green" | Yes |
− | | | + | | [[#TIMER_VAL|TIMER_VAL]](n) |
+ | | 0x10003000 + 4*n | ||
| 2 | | 2 | ||
+ | | Boot9, Kernel9 | ||
|- | |- | ||
− | | | + | | style="background: green" | Yes |
− | | | + | | [[#TIMER_CNT|TIMER_CNT]](n) |
+ | | 0x10003002 + 4*n | ||
| 2 | | 2 | ||
+ | | Boot9, Kernel9 | ||
|} | |} | ||
− | = | + | == TIMER_VAL == |
− | Writing to | + | Writing to TIMER_VAL loads a starting value for one of the 4 timers, while reading it will show the current timer value. |
− | = | + | == TIMER_CNT == |
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
− | + | ! Bit | |
− | ! | + | ! Description |
− | ! | ||
|- | |- | ||
− | | 0 | + | | 1-0 |
| Prescaler select (0=F/1, 1=F/64, 2=F/256, 3=F/1024) | | Prescaler select (0=F/1, 1=F/64, 2=F/256, 3=F/1024) | ||
|- | |- | ||
Line 53: | Line 36: | ||
| Count-up (0=Disabled, 1=Enabled) | | Count-up (0=Disabled, 1=Enabled) | ||
|- | |- | ||
− | | 3 | + | | 5-3 |
| Not used | | Not used | ||
|- | |- | ||
Line 63: | Line 46: | ||
|} | |} | ||
− | = Count-up = | + | == Count-up == |
When count-up is enabled, the timer value will increase every time the previous timer overflows. | When count-up is enabled, the timer value will increase every time the previous timer overflows. |
Latest revision as of 21:00, 15 February 2017
There are 4 timers. These timers run at a frequency of 67,027,964.0 ± 2-32 Hz (i.e. exactly half the ARM9 clock frequency).
Registers[edit]
Old3DS | Name | Address | Width | Used by |
---|---|---|---|---|
Yes | TIMER_VAL(n) | 0x10003000 + 4*n | 2 | Boot9, Kernel9 |
Yes | TIMER_CNT(n) | 0x10003002 + 4*n | 2 | Boot9, Kernel9 |
TIMER_VAL[edit]
Writing to TIMER_VAL loads a starting value for one of the 4 timers, while reading it will show the current timer value.
TIMER_CNT[edit]
Bit | Description |
---|---|
1-0 | Prescaler select (0=F/1, 1=F/64, 2=F/256, 3=F/1024) |
2 | Count-up (0=Disabled, 1=Enabled) |
5-3 | Not used |
6 | IRQ enable (0=Disabled, 1=IRQ on timer value overflow) |
7 | Start/Stop (0=Stop, 1=Start) |
Count-up[edit]
When count-up is enabled, the timer value will increase every time the previous timer overflows.