This discussion deals with the use of the 16-bit counter (TMR1) in the PICAXE-28X, and I assume the -40X as well. This may be used to count external events in the background. One application that comes to mind is a rainfall tipping bucket counter, where the user doesn't really care to devote an entire PICAXE to this task.
Another appication might be to use the counter as a primitive indication to monitor that an event happened, again, without camping on a pin.
The X series of PICAXE devices are implemented using Microchip PICs which all include a 16-bit counter which may be externally accessed. Unfortunately, on the PICAXE-18X (PIC16F88) the T1CKI input is associated with PORTB which are fixed as output pins. However for the -28X, T1CKI is on terminal 6 which may be used as an input. Note that this is bit0 of PICAXE PortC.
The Timer1 is configured by poking register T1CON (at location $10). The clock source is selected as external by clearing the TMR1CS bit and the counter is turned on by setting TMR1ON bit.
At any time, TMR1H and TMR1L at locations $0F and $0E.
A simple routine which first clears the 16-bit counter value, pokes the T1CON register to configure the counter and then reads and displays the high and low bytes of the counter appears below.
' T1COUNT.Bas (PICAXE-28X) ' ' ' clock source ------------ PICAXE-28X (term 6) (T1CKI) ' ' copyright, Peter H Anderson, Baltimore, MD, April, '04 Symbol T1CONVal = B0 Symbol CounterH = B3 Symbol CounterL = B2 Symbol Counter = W1 Poke $0F, 0 ' clear high and low bytes of Timer1 Poke $0E, 0 Poke $10, $03 ' Configure T1CON for Timer1 On, External Clock Top: High 0 Pause 100 Low 0 Peek $10, T1CONVal Peek $0F, CounterH Peek $0E, CounterL SerTxD (#T1CONVal, " ", #CounterH, " ", #CounterL, 13, 10) SerTxD (#Counter, 13, 10) Pause 1000 GoTo Top