Hello Chris,
I was looking back at out discussion and I think I might have made things more confusing than they could be and I think there is a simpler way to accomplish what you are trying to do.
1) Buffered Event Counting - For our particular appilcation, buffered event counting will allow us to a) count events at both the source and the gate of the counter (I will explain in a second) and b) let us know the amount of time between consecutive events on the gate or the counter. The count register will always hold the number of active edges that have been input into the source terminal of the counter. In our case, we want to input the 80 MHz clock. Because we know the frequency of the signal (80 MHz) coming into the source terminal of the counter, we can determine the amount of time that has passed since the first active edge input on the source based on the current value in the count register. For example, if the count register has a value of 800,001, that means 800,001 active edges have been input into the source terminal at a frequency of 80 MHz, which means the timestamp for the 800,001st active edge is (800,001-1)/(80*10^6) = 0.01 s relative to the first active edge. In buffered event counting we also have a signal coming into the gate terminal of the counter. This signal is going to latch the data from the count register and store it into a buffer at every active edge. The size of this buffer will let us know how many active edges occured at the gate because for each active edge there should be one count register value in the buffer. Based on the actual values in the buffer, we can now calculate the timestamps for the active edges occuring on the gate. For example, let's say we receive an edge at the gate. We latch the count register and it has the value 2. We receive another active edge on the gate and we latch the count register value 500. That means that between those 2 active edges on the gate, the counter counted 498 edges at the source that were coming in at 80 MHz. The time between the two gate edges is 498/(80 MHz). Below is a timing diagram of buffered event counting.

Also, the LabVIEW example for buffered event counting can be found here:
C:\Program Files\National Instruments\LabVIEW 7.1\examples\DAQmx\Counter\Count Digital Events.llb\Count Digital Events-Buffered-Continuous-Ext Clk.vi
I've modified this example so that the source terminal of the counter uses the 80 MHz timebase. It is attached as "Buffered Event Counting.vi".
2) Large Range - In your most recent post you sounded concerned about reaching the terminal count of the count register when using the 80 MHz timebase. In order to avoid this, you can always route the output of the counter to the input of another counter. The output of a counter outputs a pulse whenever it reaches it's terminal count. We can use another counter to count the number of times we have hit the terminal count on the other counter.
3) Trigger - There is no direct way to trigger a counter measurement. However, you can control when the counter starts counting by determing when the active edges on the source terminal begin to appear. Counters can be used to generate pulse trains. You can use this pulse train instead of the 80 MHz timebase discussed in step 1) (however, you will not be able to generate a 80 MHz signal, the maximum will probably be 40 MHz). Since this pulse train can be triggered, you can effectively control when the counting begins. An example of this can be found here:
C:\Program Files\National Instruments\LabVIEW 7.1\examples\DAQmx\Counter\Generate Pulse.llb\Gen Dig Pulse Train-Continuous-Dig Start.vi
One thing to note is that setting up your event counting for a large range requires extra counters and doing a triggered pulse train generation also requires more counters. If your board only has 2 counters, you will not be able to do both.
I hope this information helps out, let me know if you have any other questions.
Message Edited by E.Lee on 06-03-2005 05:04 PM
Message Edited by E.Lee on 06-03-2005 05:05 PM
Eric
DE For Life!