Email: Password: Remember Me | Create Account (Free)

Back to Subject List

Old thread has been locked -- no new posts accepted in this thread
Andy Peters
06/18/09 17:30
Read: 283 times
Tucson, Az
USA


 
#166231 - free-running counter/timer
Responding to: Per Westermark's previous message
Per Westermark said:
On another note. You don't have to start/stop a timer to use it for timing. I often use a free-running timer. It may have an interrupt handler ticking every 1ms or 10ms or whatever. But I can also let a software delay read out the current value and then wait until it has ticked a specific number of steps or a specific number of turn-arounds or whatever is applicable.


I do this, too, although most recently on Xilinx MicroBlaze and PPC designs. The hardware includes a free-running 32-bit counter, and I make this counter available to both arbitrary FPGA logic as well as appearing to the micro as a read-only register.

Before going into the for(;;) loop I read and save the counter value. The main loop of the micro application reads that register once per run through the loop, and compares the difference between the saved value and the current value, and if it exceeds some constant, then I do whatever I needed to do at that interval, and I save the new count, and start it all again.

This works well for millisecond counts, and at 80 MHz, the counter rolls over every 53 seconds and anyways, my compare takes rollovers into account.

I suppose if I needed microsecond-level accuracy I'd consider something else, like perhaps having the counter interrupt.

-a


List of 30 messages in thread
TopicAuthorDate
s/w delay function      Sandeep Gupta      06/02/09 00:50      
   Software loops can be optimized away      Per Westermark      06/02/09 01:07      
   lacks side-effects      Neil Kurzman      06/02/09 01:07      
      First time with LINT?      Andy Neil      06/02/09 01:19      
   lacks side-effects      Andy Neil      06/02/09 01:07      
      That does not mean it is an error.      Neil Kurzman      06/02/09 01:12      
      It also blocks      Jez Smith      06/02/09 01:49      
   How to post legible source code      Andy Neil      06/02/09 01:13      
   DELAY_0.1.ZIP Useful?      Murray R. Van Luyn      06/14/09 22:11      
      That doesn't help, and it won't work anyhow!      Andy Neil      06/15/09 01:54      
         I stand by it.      Murray R. Van Luyn      06/15/09 19:21      
            Yes a delay function is useful      David Prentice      06/16/09 02:39      
               wrong !!!!      Erik Malund      06/16/09 08:46      
               No, that's precisely where you're wrong      Andy Neil      06/16/09 12:35      
            How can you say that?      Andy Neil      06/16/09 12:43      
               I think you should read Murray's comments      David Prentice      06/16/09 15:20      
                  I have seen ...      Erik Malund      06/16/09 15:45      
                     Timers usable without start/stop too        Per Westermark      06/16/09 16:30      
                        free-running counter/timer      Andy Peters      06/18/09 17:30      
                           Unsigned integers      Per Westermark      06/18/09 17:39      
                              re: unsigned      Andy Peters      06/19/09 12:16      
                                 Try unsigned subtraction with borrow      Per Westermark      06/19/09 13:05      
                                 bug in second (improved!?) code block      Andy Peters      06/19/09 16:38      
   Delay Loops in 'C'..!!! NO      Mahesh Joshi      06/16/09 05:44      
      Go on. Suggest a SIMPLE alternative      David Prentice      06/16/09 06:20      
         My Methods      Mahesh Joshi      06/16/09 07:21      
            So he has a long list of constraints      David Prentice      06/16/09 07:46      
               oh boy what a load who wil have 10 minutes for this      Erik Malund      06/16/09 08:55      
                  Ok. I was being naughty.      David Prentice      06/16/09 10:28      
                     you forget the obvious ...      Erik Malund      06/16/09 10:49      

Back to Subject List