Talk:Timers

From WikiPrizm
Jump to navigationJump to search

Info Missing

The article seems to be missing some info here

  1. Are timers prioritized by timer ID?
  2. Will a timer's interrupt be paused when in a callback?

Ahelper (talk) 14:32, 14 November 2014 (EST)

I haven't put information about that, because I don't know much about it. The way I imagine timers work, they are prioritized by ID, because when the hardware timer fires the timer interrupt, and the system goes checking which soft-timers ticked, it must start by one timer, and then the other, and the other... now, if the "interrupt" is paused or not when in a callback, I don't know, but if the hardware timer is only rearmed after checking all soft-timers and running their callbacks, then yes, it's as if the interrupt was paused during the callback.
The first point may be easy to answer with some experimentation, now the second? Only by building code which hangs on the callback, and waits for the callback to be called again... I'm not sure that would work, it's an idea...
--Gbl08ma (talk) 16:21, 15 November 2014 (EST)

I am doing my own research into timers right now. I will be examining the above points as well as others, such as:

  • How is the info about timers stored? - Confirmed to be the same as the fx-9860G
  • How can one retrieve the saved registers for each timer callback invocation?

I will document this on User:Ahelper/Timers. Once I have enough research done and documentation ready, I will expand to the article.

Ahelper (talk) 21:20, 22 November 2014 (EST)

The system timers (1-4) use a different frequency scale than the user timers. The system timer ticks are calculated by the interval + (interval << 5). The user timers have much lower ticks, something close to interval / 40 + n. I am guessing that "milliseconds" for the interval is not correct for all timers assuming 1 timer controls both. I don't even know if milliseconds is completely right either. I'll have a more solid function for getting ticks for user timers.
Ahelper (talk) 03:28, 25 November 2014 (EST)

Timer Conflicts

There appear to be conflicts between other syscalls besides bfile* ones and Bdisp_PutDisp_DD. It seems that the rate timers are called can fluctuate, most likely from other parts of the OS changing the timing source. -- Ahelper (talk) 17:32, 3 December 2014 (EST)

  • Are these conflicts in the sense that they cause system errors or other undefined behavior, or are they just a nuisance in the sense that it becomes harder to predict when the timer handler will be called? How did you determine that the fluctuations were due to the timing source changing? Could it be just due to some syscalls disabling timers/interruptions for a short period of time? --Gbl08ma (talk) 19:22, 3 December 2014 (EST)