constants [[timerA-ctrl $fD5][timerA-val $fD6]] to timed ;prescale value 1:2, bits 0-2 '000' clearbit 0 timerA-ctrl clearbit 1 timerA-ctrl clearbit 2 timerA-ctrl ;disable prescaler setbit 3 timerA-ctrl ;increment timer on rising edge clearbit 4 timerA-ctrl ;increment on external clock setbit 5 timerA-ctrl ;8-bit timer mode setbit 6 timerA-ctrl ;enable timer 0 setbit 7 timerA-ctrl ; set the timer initially to 0 write timerA-val 0 loop [ ; repeat no-op 2990 times (should be changed to a more accurate ; timed value, probably by using the internal millisecond timer ; to wait a certain number of milliseconds, then report the micro- ; second timer value. 2990 is chosen as it produced the best ; results in practice. repeat 2990 [no-op] ; send the timer value. send (read timerA-val) ; reset the timer to 0 write timerA-val 0 ] end