how to generate two signals from two ports at the same time by using p16f84


Results 1 to 27 of 27

Threaded View

  1. #20
    Join Date
    Aug 2010
    Location
    Maryland, USA
    Posts
    869


    Did you find this post helpful? Yes | No

    Default Re: how to generate two signals from two ports at the same time by using p16f84

    You are close to what I mean. TMR0 Should be setup as a time base, you had mentioned 8uSec in another post. So compute the reload value for TMR0 such that you get an interrupt flag at 8uSec. (hint: use PicMultiCalc to help get the values)

    Next the freq values are computed by YOU and hardcoded. so if TMR0 is 8uSec, and you need a period of 800 uSec, freq will be 800/8 or freq = 100.

    Your while loop just needs to check for TMR0 interrupt flag bit. You do not want to enable interrupts, but the flag will be set anyway. So as soon as the flag is set you need to do this:
    Code:
    reload the TMR
    clear the flag
    decrement freq1 &freq2
    check each for zero (IF !freq1 then) this will check if freq1 = 0
    I will let you work on how to actually code the above. You almost have the Freq checks correct. Put comments in your code. This will do 2 things:
    1 tells others and yourself what things are doing. If you code more beyond this class, you will be VERY happy you started doing this.
    2 When you comment what you think things are doing, It will make it easier to see what is wrong. Here is a for instance:
    Code:
    while   tmr0>=250  ' this line checks if TMR0 is greater then 250
        tmr0= 0            'this line sets TMR0 to equal 0 if it is greater then 250
        wend               ' this is where the program jumps to when TMR0 is less then 250
    This will not work ok, the ugly is all your program will run while waiting for the timer to reach 250. Then when tmr does reach 250, you just set it back to zero. Effectively tmr0 is doing nothing for you here. I will leave it to you to try to figure out why.

    BTW, I am in no way a very good teacher, so please bear with me. My goal is to give you clues and help you to understand what is going on as opposed to telling you how to do each step. Is there a deadline when you must be done?
    Last edited by cncmachineguy; - 29th July 2011 at 13:53.
    -Bert

    The glass is not half full or half empty, Its twice as big as needed for the job!

    http://foamcasualty.com/ - Warbird R/C scratch building with foam!

Members who have read this thread : 0

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

Tags for this Thread

Posting Permissions

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