Pulse Decoding


Results 1 to 13 of 13

Thread: Pulse Decoding

Threaded View

  1. #7
    Join Date
    May 2008
    Posts
    46


    Did you find this post helpful? Yes | No

    Default

    Ok, so further testing - this time using Audacity to record the waveforms as it gives me more freedom to scroll back and forth - has resulted in the following 3 waveforms: http://img527.imageshack.us/my.php?i...8222006dl4.png

    I'm going to opt to completely ignore the first transmission sequence as the start of it is a little messed up and target the second transmission sequence (I pushed the button as fast as I could, I always got 2 or more sequences).

    So the following code is what I've got (haven't run it yet).

    Does it look right?

    I was playing around with it before as '1's instead of '0's in pulsin but it was picking up the block of 0's not the block of 1's. (If that makes any sense)

    I've decided to chop the data comming up as
    ADDRESS-DATA-S
    1111000100110101-11000000-0
    1111000100110101-00110000-0
    1111000100110101-00000011-0

    Following the encoder's specs this is actually
    110F01FF1000S
    110F01FF0100S
    110F01FF0001S
    F = Floating
    S = Sync

    Further reading of the specs - there'll be 4 sequences. Seeing as the first of the sequence is trashed, I just need to record and compare the other 3

    Code:
    ' Configure the FUSE options for the compiler
    @     device pic16F628A, hs_osc, wdt_off, pwrt_on, lvp_off, protect_off, bod_on, cpd_off, pwrt_off, mclr_off
    
    ' Running a 4Mhz clock
    DEFINE OSC 20
    DEFINE PULSIN_MAX 3000
    
    ' Setup the USART
    DEFINE HSER_RCSTA 90h      ' Receive register to receiver enabled
    DEFINE HSER_TXSTA 20h      ' Transmit register to transmitter enabled
    DEFINE HSER_BAUD 9600      ' Set baud rate
    
    CMCON  = 7
    ALL_DIGITAL
    
    RFIN VAR PORTB.7
    
    INPUT RFIN
    
    PBITS   VAR BYTE[17] ' The bits we've read
    RAW     VAR BYTE     ' The raw pulsin value
    ADDRESS VAR WORD     ' Storage for the address
    DBYTE   VAR BYTE     ' Storage for the data
    X       VAR BYTE
    Y       VAR BYTE
    
    
    GET_ADD:
        ADDRESS = 0 : RAW = 0 : DBYTE = 0
    
    GET_PULSE:
        ' Count 4 long pulses.
        FOR x = 0 TO 3
            PULSIN RFIN, 0, RAW
            if RAW < 220 OR RAW > 230 THEN GET_PULSE
        NEXT X    
    
        ' Count 3 short pulse.
        FOR X = 0 to 2
            PULSIN RFIN, 0, RAW
            IF RAW < 70 OR RAW > 80 THEN GET_PULSE
        NEXT X
    
        ' Read 9 address bits and 8 data bits    
        FOR X = 0 TO 16
            PULSIN RFIN, 0, RAW
            PBITS[x] = NCD RAW
        NEXT X
    
        ' Read a sync bit    
        PULSIN RFIN, 0, RAW
        IF RAW < 70 OR RAW > 80 THEN GET_PULSE
        
        
        ADDRESS = 511 ' Maxmimum known ID
        FOR X = 0 to 8
            IF PBITS[x] > 7 THEN ADDRESS.0[X] = 0
        NEXT X
        
        DBYTE = 255 ' Maximum known data value
        Y=0
        FOR X = 9 TO 16
            IF PBITS[X] > 7 THEN DBYTE.0[Y] = 0
            Y = Y + 1
        NEXT X
        
        
        IF ADDRESS > 0 THEN
            WRITE 1, ADDRESS.LowByte
            WRITE 2, ADDRESS.HighByte
            Write 3, DBYTE
            HSEROUT ["ADD = ",IBIN9 ADDRESS," : ",IDEC ADDRESS,13,10]
            HSEROUT ["DAT = ",IBIN8 DBYTE," : ",IDEC DBYTE,13,10]
        ENDIF
        GOTO GET_ADD
    END
    Last edited by Freman; - 1st June 2008 at 14:04.

Similar Threads

  1. Pulse Capture and byte building
    By boroko in forum mel PIC BASIC Pro
    Replies: 2
    Last Post: - 21st July 2009, 01:59
  2. Single digit 7 Seg LED clock - PIC16F88
    By thirsty in forum Code Examples
    Replies: 4
    Last Post: - 17th July 2009, 08:42
  3. Replies: 3
    Last Post: - 13th September 2008, 17:40
  4. Decoding an incoming infrared signal: need advice
    By xnihilo in forum mel PIC BASIC Pro
    Replies: 10
    Last Post: - 9th May 2008, 16:28
  5. Pulse Frequency Multiplication
    By jamie_s in forum mel PIC BASIC Pro
    Replies: 2
    Last Post: - 21st August 2005, 10:39

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