Need advice for creating nS time delay


Closed Thread
Results 1 to 29 of 29

Hybrid View

  1. #1
    Join Date
    Jul 2003
    Location
    Sweden
    Posts
    237


    Did you find this post helpful? Yes | No

    Post

    My guess is that this code will work......

    Code:
    @ device  pic12F675, protect_off, mclr_off
    
    define OSC 4
    DEFINE OSCCAL_1K 1	            'Set OSCCAL for 1K device
    
    DataPin     VAR GPIO.0              'DOCI on the PIR
    PIRdata     VAR WORD                
    i           VAR BYTE
    
    ANSEL = 0                           'No AD on 12F675
    CMCON = %00010111                   'Digital pins - no comparator
    WPU = 0                             'No pullups
    
    WHILE 1                             'Do forever
        HIGH GPIO.1                     'Set a pin to time the reading
        GOSUB ReadPIR                   'Call the Sub
        LOW GPIO.1                      'Reset a pin to time the reading
        PAUSE 10                        'Just something to sync the scope
    WEND
       
    
    ReadPIR:
        INPUT DataPin                   'Let PIR control the Datapin
        PIRdata = 0                     'Use this time to let Datapin settle
        WHILE DataPin = 0 : WEND        'Wait for PIR to indicate "new data"
        PAUSEUS 25                      'Wait for PIR to fiddle with the data
        FOR i = 14 to 0 STEP -1         'Loop to get 15bits
            LOW DataPin                 'Force Datapin Low
            HIGH Datapin                'Force Datapin High
            INPUT Datapin               'Let PIR control the Datapin
    ' You may need a short pause here if you have long wires to the PIR    
            PIRdata.0(i) = Datapin      'Sample the datapin
        NEXT
        LOW DataPin                     'Force Datapin Low
        INPUT Datapin                   'Let PIR control the Datapin
        RETURN
        
    END
    ... it compiles and runs as expected. Only problem is that i don't have a PIR to verify it with, it does however look OK on a scope. If i have interpreted the datasheet correctly you should be flying.

    /Ingvar

  2. #2
    Join Date
    Jan 2006
    Location
    Istanbul
    Posts
    1,185


    Did you find this post helpful? Yes | No

    Default

    Ingvar,

    I tested your code a minute ago; with some additions;

    Congratulations! It works flawlessly.

    My code is almost the same as yours.

    What I see here is that, when we set the pin HIGH and then LOW, the time it takes to set the pins is already good enough for the sensor reading.
    Last edited by sayzer; - 11th December 2007 at 12:22.
    "If the Earth were a single state, Istanbul would be its capital." Napoleon Bonaparte

  3. #3
    Join Date
    Jul 2003
    Location
    Sweden
    Posts
    237


    Did you find this post helpful? Yes | No

    Thumbs up

    Good to know that we have working code ... if i ever buy one of theese PIRs.

Similar Threads

  1. 16F628A - Stops if release power switch.
    By dene12 in forum General
    Replies: 16
    Last Post: - 14th February 2009, 07:57
  2. Old and beyond help ?
    By DavidFMarks in forum mel PIC BASIC Pro
    Replies: 46
    Last Post: - 11th December 2008, 15:23
  3. Memory Space of the PIC16F84...
    By Tear in forum mel PIC BASIC Pro
    Replies: 7
    Last Post: - 1st July 2005, 19:55
  4. Problem with saving to EEPROM...
    By Tear in forum mel PIC BASIC Pro
    Replies: 5
    Last Post: - 1st July 2005, 00:10
  5. Linx RF -> HSERIN time delay / time critical app...
    By batee in forum mel PIC BASIC Pro
    Replies: 1
    Last Post: - 15th October 2004, 15:04

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