Timer Interrupt Document Written by Jonathan Waugh There are 2 registers you need to set to use the timer interrupt: 1) $FF07 (TAC) selects the clock frequency. You set it to 4 for a frequency of 4.096Khz But this is not when the interrupt occurs. It determines when the TIMA ($FF05) is incremented. ie. In your example, the TIMA is incremented 4096 times a sec. The interrupt occurs when the TIMA generates an overflow. ie goes from 255 -> 0 2) $FF06 (TMA) sets the starting point for the TIMA register. If you set it to 255 (-1), a timer interrupt would occur at the clock frequency. (4096Hz) If you set it to 240 (-16), a timer interrupt will occur at the clock frequency /16 (256Hz) It follows that the largest time interval you can get via the timer interrupt is 16Hz. Clock = 4096Hz, TMA = 0 (-256) To get a delay of 2 secs, you will have to wait for 32 timer interrupts. Option: Set up your own variable that counts down from 32. When it reaches 0, reset to 32 and process your interrupt code.