Data logger clock and array


Closed Thread
Results 1 to 18 of 18

Hybrid View

  1. #1
    Join Date
    Sep 2008
    Posts
    10


    Did you find this post helpful? Yes | No

    Default

    Quote Originally Posted by skimask View Post
    8Mhz / 4 = 2Mhz...
    Clocking a 16 bit timer off the instruction clock @ 2Mhz = 2Mhz / 65536 = 30.517578125 interrupts per second (have to take the 1/x of the result, that's the part you forgot).
    Set up the interrupt routine to count to 30, then take a sample. Yes, you'll be 16.69ms off for each second, unless you reload that particular timer at each interrupt with a correction factor to make it exactly one second. Look up the phrase PIC Multi-Calc.
    If you clock an 8 bit timer off the instruction clock @ 2Mhz, 2Mhz / 256 = 7812.5 interrupts per second. Set up that interrupt routine to count to 7812, then take a sample. With the 8 bit timer, you'll only be 65us off in each second.
    Oh my god, it looks so much simpler after you explained it to me. I've been reading about the timer and I still was wrong but after your explanation it is so clear to me now. Thank you!!!!!!! Just to make sure about prescaler. For example using 16bit timer with a prescaler 1:1 it would interrupt approximately 30 times per second and using prescaler 1:2 it should interrupt approximately 60 times. Is it correct?

    I was just reading thread about instruction execution time by Darrel Taylor and after testing I can easily calculate what it takes to do ADC, CCP, etc. Probably I can even make a simple software clock and add to the clock execution time to compensate missing nanoseconds/milliseconds. I think interrupt clock is much easier and faster to write but what would you recommend interrupt or software clock?

  2. #2
    skimask's Avatar
    skimask Guest


    Did you find this post helpful? Yes | No

    Default

    Quote Originally Posted by PicLearner View Post
    For example using 16bit timer with a prescaler 1:1 it would interrupt approximately 30 times per second and using prescaler 1:2 it should interrupt approximately 60 times. Is it correct?
    Nope...

    Scaler = Divider, prescaler = predivider, postscaler = postdivider

    I was just reading thread about instruction execution time by Darrel Taylor and after testing I can easily calculate what it takes to do ADC, CCP, etc. Probably I can even make a simple software clock and add to the clock execution time to compensate missing nanoseconds/milliseconds. I think interrupt clock is much easier and faster to write but what would you recommend interrupt or software clock?
    Must've missed my suggestion to search for PIC Multi-Calc...
    If you're using interrupts, you don't have to count the ADC, the CCP, any of that. The interrupt will INTERRUPT every xxx microseconds (or instruction cycles, whatever) and run the interrupt subroutine. Look in the PBP manual under ON INTERRUPT, or if you're feeling froggy, search here for Instant Interrupts.
    And think about this...do you really need an exact 1 second interrupt? I'd just concentrate on getting it all working first, then add in some interrupt routines.

Similar Threads

  1. Bit Angle Modulation (BAM) in a PIC
    By Bronx68 in forum mel PIC BASIC Pro
    Replies: 150
    Last Post: - 24th February 2015, 13:41
  2. I2C Master/Slave 16F88/16F767 working code
    By DanPBP in forum Code Examples
    Replies: 2
    Last Post: - 23rd October 2012, 22:31
  3. PIC HSERIN problem
    By shaiqbashir in forum mel PIC BASIC Pro
    Replies: 10
    Last Post: - 20th July 2008, 11:08
  4. Using SPI with External Interrupts
    By shaiqbashir in forum mel PIC BASIC Pro
    Replies: 0
    Last Post: - 29th June 2008, 04:08
  5. 16-bit SPI problem
    By shaiqbashir in forum mel PIC BASIC Pro
    Replies: 3
    Last Post: - 19th June 2008, 15:42

Members who have read this thread : 0

You do not have permission to view the list of names.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts