Timer using Picbasic Pro


Closed Thread
Results 1 to 15 of 15

Hybrid View

  1. #1
    Join Date
    Jul 2003
    Posts
    2,358


    Did you find this post helpful? Yes | No

    Default

    Datasheet! *sigh*

    Timer1 ticks every 1uS @ 4MHz.

    It's 16 bits wide, therefore with a 4MHz clock will time 65.536mS between each Flag.

    Using the 1:8 prescaler your maximum time is 8*65.536mS=524.288mS

    So unless Microchip has shoved hardware into your PIC that mine doesn't have, the answer is NO, Timer1 will NEVER tick 1 second @ 4MHz.

    You can always use a Bit Variable as a Flag... If BitFlag=0 and Timer1Flag then half a second has elapsed - so Set the BitFlag. If BitFlag=1 and Timer1Flag then one second has elapsed, so reset the BitFlag and start over for a new Second.

    Homework: What has Timer2 got that Timer1 doesn't have?

  2. #2


    Did you find this post helpful? Yes | No

    Default homework

    Timer2 has a prescaler and a postscaler. Am I right Melanie, am I right??

  3. #3
    Join Date
    Jul 2003
    Posts
    2,358


    Did you find this post helpful? Yes | No

    Default

    Yup, you're right... Homework Part Deux: Which now means what's the maximum Time you can let Timer2 run for at 4MHz with all the prescalers and postscalers enabled?

  4. #4


    Did you find this post helpful? Yes | No

    Default homework

    Boy - you're putting me through the mill. I come up with 16.777 seconds. Am I right... am I right??

  5. #5
    Join Date
    Jul 2003
    Posts
    2,358


    Did you find this post helpful? Yes | No

    Default

    Close, but no cigar...(we're talking about Timer2 in a PIC16F876/877)...

  6. #6
    Join Date
    Mar 2006
    Location
    Gothenburgh, Sweden
    Posts
    18


    Did you find this post helpful? Yes | No

    Default

    Hi Melanie.

    Im working with a 18f4550 and using USB to communicate with a Visual basic program.
    I need to measure the time an input pin is activated.
    Normaly I use Pulsin but the USB commands must be polled every 1ms to keep contact with the computer. So how can I write a code that doesnt "halt" the program during the measuring?
    The performance must be the same as Pulsin, 2us reolution at 20Mhz and it would be great if I can measure up to 500ms instead of 130ms like Pulsin.

    Thanks in advance.

    Stefan.

  7. #7
    Join Date
    Jul 2003
    Posts
    2,358


    Did you find this post helpful? Yes | No

    Default

    I would use say CCP1 pin of the PIC and confiure the CCP Module in Capture Mode. In this mode, the module will capture the 16-bit value of the TMR1 Register when the CCP1 pin changes state. This will occur with minimal intervention from your program. The resolution at 20MHz will be in steps of 200nS to a maximum of 16 bits - ie 13.1mS. Use the integral Hardware of the PIC to help you with this one. Unfortunately you're limited to the size of the TMR1 register. Alternatively, you can use instant interrupts in conjunction with TMR1 to give you longer time periods if you enable the prescaler. Without knowing what's going on in your application it's difficult to recommend.

Similar Threads

  1. can anyone here can convert this in picbasic pro?
    By reianjim in forum mel PIC BASIC Pro
    Replies: 2
    Last Post: - 3rd December 2009, 12:43
  2. Replies: 3
    Last Post: - 1st July 2008, 22:07
  3. How to configure SPI in PICBASIC PRO?
    By moogle in forum mel PIC BASIC Pro
    Replies: 13
    Last Post: - 15th April 2007, 19:31
  4. Question for all that use MELABS PICBASIC PRO
    By oskuro in forum Off Topic
    Replies: 2
    Last Post: - 24th March 2005, 18:15
  5. PicBasic Pro & PicBasic syntax different
    By Billyc in forum General
    Replies: 5
    Last Post: - 16th April 2004, 22:19

Members who have read this thread : 1

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