I don't understand this code!


Closed Thread
Results 1 to 40 of 47

Hybrid View

  1. #1
    skimask's Avatar
    skimask Guest


    Did you find this post helpful? Yes | No

    Default

    Might sound a bit silly, but, maybe if you drew us a quick picture of what you want the output to be, like if it was a picture from an o'scope, we might be able to better understand what you actually want.
    The last post by Pic_User sounds like that might be the problem, simple mistake, easily fixed...

  2. #2
    Join Date
    Jan 2006
    Location
    New Hampshire, USA
    Posts
    107


    Did you find this post helpful? Yes | No

    Default

    The waveform posted by Picuser is what I want the output to look like. The actual output is the inverse and I don't understand it. Perhaps my compiler is corrupted?

  3. #3
    skimask's Avatar
    skimask Guest


    Did you find this post helpful? Yes | No

    Default

    Quote Originally Posted by Russ Kincaid View Post
    The waveform posted by Picuser is what I want the output to look like. The actual output is the inverse and I don't understand it. Perhaps my compiler is corrupted?
    I'd highly doubt your compiler is corrupted, but maybe a reinstall is in order.
    And I think post #16 might be your problem in the first place.

  4. #4
    Join Date
    Jan 2006
    Location
    New Hampshire, USA
    Posts
    107


    Did you find this post helpful? Yes | No

    Default

    Thanks for your reply. PIC_USER is correct in post #16, both GPIO.0 and GPIO.1 are at the same level in time periods 2 and 4, but they are both low. I want them to be high. Can someone tell me what is wrong with my code?

    BTW, I changed to TRISIO=0, didn't make a difference.

  5. #5
    Join Date
    Apr 2006
    Location
    New Hampshire USA
    Posts
    298


    Did you find this post helpful? Yes | No

    Smile your second (inverse) code

    Hi Russ,
    I think with your original pins (GPIO.0 and GPIO.1), and your second (inverse) code:

    LOW GPIO.0 'INITIAL CONDITIONS
    LOW GPIO.1

    START:
    HIGH GPIO.1
    PAUSEUS 4168 ' HIGH TIME
    LOW GPIO.1
    PAUSEUS 4167 'DEAD TIME, BOTH LOW
    HIGH GPIO.0 'SETS PIN 7 HIGH
    PAUSEus 4168 'FOR 4.168 MILLISECONDS
    LOW GPIO.0
    PAUSEUS 4167 'DEAD TIME

    GOTO START '60 HZ FREQUENCY

    END

    ...and your diodes reversed and the resistor tied to ground (as skimask said).

    Your two LEDs will not be on at the same time... (try it)

    I still would like to know between which points are you measuring the wave (voltage) from?

    -Adam-
    Ohm it's not just a good idea... it's the LAW !

  6. #6
    Join Date
    Jan 2006
    Location
    New Hampshire, USA
    Posts
    107


    Did you find this post helpful? Yes | No

    Default

    Hi Pic_User. Yes, I know that, but why cannot I connect the LEDs to + and pulse to ground? I changed the program, trying to zero in on the probem. Now GPIO.1 pulses to ground like I want but GPIO.0 pulses positive in phase with GPIO.1. I would not expect GPIO.0 to change at all.

    high GPIO.0 'INITIAL CONDITIONS
    high GPIO.1

    START:
    low GPIO.1
    high GPIO.0
    PAUSEUS 4168 ' ON TIME
    high GPIO.1
    PAUSEUS 4167 'DEAD TIME, BOTH high
    high GPIO.1
    PAUSEus 4168 'FOR 4.168 MILLISECONDS
    high GPIO.1
    PAUSEUS 4167 'DEAD TIME

    GOTO START '60 HZ FREQUENCY

    END

    I will post the final circuit so you can see what I am trying to do. I want to replace the 555, flip flops and gate with the PIC.
    Attached Images Attached Images  
    Last edited by Russ Kincaid; - 7th May 2007 at 17:10.

  7. #7
    Join Date
    Apr 2006
    Location
    New Hampshire USA
    Posts
    298


    Did you find this post helpful? Yes | No

    Lightbulb anti-overlap time

    Hi Russ,

    Looking at the circuit you want to replace:
    It looks like you want to avoid both being on at the same time, at all costs (as you said).

    It may be better to declare variable for the “HIGH TIME” and the “anti-overlap” time so you can change them in one place in the program, while playing with the duty cycle.

    Could be missing something but it looks like you want the positive part of the cycle to take 8.336 milliseconds and same time for the negative part.
    Sixty Hertz = 1/60 = 0.0167 (16.67 milliseconds).
    This gives us 16.67 milliseconds for a complete (whole) cycle.

    How much on or off time can be played with but the recurring 60Hz, is fixed.
    So the total on and off time for GPIO.0 and GPIO.1 should equal 16.67 milliseconds, and never be on at the same time.

    I used your same code and beat it up pretty bad:

    LOW GPIO.0 'INITIAL CONDITIONS
    LOW GPIO.1

    START:

    HIGH GPIO.1
    PAUSEUS 8236 ' HIGH TIME - GPIO.1 only
    LOW GPIO.1 ‘both pins low
    PAUSEUS 100 ' anti-overlap time
    ‘ HIGH TIME and over-lap time should add to 8.336 milliseconds

    HIGH GPIO.0 ' GPIO.1 has been low during anti-overlap time
    PAUSEUS 8236 ' HIGH TIME - GPIO.0 only
    LOW GPIO.0 ‘ both pins low
    PAUSEUS 100 ' anti-overlap
    ‘ HIGH TIME and over-lap time should add to 8.336 milliseconds

    GOTO START '60 HZ FREQUENCY

    END

    Play with HIGH TIME and anti-overlap to get the desired duty-cycle (average vs. RMS vs. 0.7 ) but they should total to 8.336 milliseconds each half cycle. Then 16.67 milliseconds for the whole cycle.

    You should run the diodes (LEDs) between the PIC pins and the resistor to common (ground).

    Oh yeah, I should warn you that I don’t know what I am doing!:>

    -Adam-
    Ohm it's not just a good idea... it's the LAW !

Similar Threads

  1. Reading in Manchester code
    By brid0030 in forum Code Examples
    Replies: 0
    Last Post: - 10th March 2009, 21:55
  2. How much code space do PBP statements use.
    By Darrel Taylor in forum Code Examples
    Replies: 5
    Last Post: - 13th February 2009, 21:31
  3. Loop with two motor and 2 sensors
    By MrRoboto in forum mel PIC BASIC
    Replies: 4
    Last Post: - 8th December 2008, 23:40
  4. Making Program Code Space your playground...
    By Melanie in forum Code Examples
    Replies: 15
    Last Post: - 19th July 2008, 08:26
  5. Re-Writing IF-THEN-AND-ENDIF code?
    By jessey in forum mel PIC BASIC Pro
    Replies: 6
    Last Post: - 18th August 2006, 17:23

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