Data processing in array


Results 1 to 13 of 13

Threaded View

  1. #6
    Join Date
    Nov 2003
    Location
    Greece
    Posts
    4,139


    Did you find this post helpful? Yes | No

    Default Re: Data processing in array

    ...when the entire process of encoding the bit stream into an unnecessary byte array
    of times instead of directly into a bit array on detection would be heaps more efficient...
    Sure I agree but could not find a fast way to encode directly the PWM bit stream into bits. The bits are coming from an RF radio receiver and have the typical 66-bit format of a keeloq transmission: 16ms guard time (low), 12 bits of 400us/400us as preamble, a 3-4ms low header and then the 66 bits of the data.

    My routine to receive all these bits is based on the PulsIn command in a while-wend loop:

    Code:
    code        VAR byte[9] BANK0   ' PWM read in
    code1       var byte[66]            ' Keeloq bits to be decrypted
    
    KEY_0       var byte BANK0
    KEY_1       var byte BANK0
    KEY_2       VAR BYTE BANK0
    KEY_3       VAR BYTE BANK0
    KEY_4       VAR BYTE BANK0
    KEY_5       VAR BYTE BANK0
    KEY_6       VAR BYTE BANK0
    KEY_7       VAR BYTE BANK0
    mask        VAR BYTE BANK0
    CSR_0       VAR BYTE BANK0
    CSR_1       VAR BYTE BANK0
    CSR_2       VAR BYTE BANK0
    CSR_3       VAR BYTE BANK0
    pass        VAR BYTE BANK0
    CNT1        VAR BYTE BANK0
    CNT2        VAR BYTE BANK0
    
    temp        var word
    
    OVER:
    while 1
    main:
    index=0
    guard:
        pulsin portb.0,0,temp     'find header of 16ms
        if temp<2500 then main   ' PIC is clocked at 8MHz, so a PulsIn step is 5usec.
        if temp>4400 then main   ' 5usec x 2500= 12.5ms up to 5usec x 4400=22ms
    preamp:
        pulsin portb.0,1,temp     'then skip 12 pulses of 50% Duty, 400usec
        if temp<50 then main      
        if temp>90 then main      
        index=index+1
        if index<11 then preamp
             
        index=0 
    pulsetrain:                   'now collect 66 pulses ~800/400 usec
        pulsin portb.0,1,code1[index]
        index=index+1
        if index<66 then pulsetrain
    
        index=0
    find_code:  'convert pulse width to binary 66 bit stream
                if code1[index]>130 then
                    if code1[index]<170 then
                        code.0[index]=0
                    endif
                endif
                
                if code1[index]<80 then
                    if code1[index]>55 then
                        code.0[index]=1
                    endif
                endif
                
                index=index+1
                if index<66 then find_code
                
                'Display the encrypted and decrypted array
                hserout ["Rec: ",bin2 code[8]," ",bin8 code[7]," ",bin8 code[6]," ",bin8 code[5]," ",bin8 code[4],":",bin8 code[3]," ",bin8 code[2]," ",hex2 code[1]," ",hex2 code[0],13,10]  'display pulse train
                CSR_0=CODE[0]:CSR_1=CODE[1]:CSR_2=CODE[2]:CSR_3=CODE[3]
                GOSUB DECRYPT_K
                hserout ["Dec: ",bin2 code[8]," ",bin8 code[7]," ",bin8 code[6]," ",bin8 code[5]," ",bin8 code[4],":",bin8 CSR_3," ",bin8 CSR_2," ",hex2 CSR_1," ",hex2 CSR_0,13,10,13,10]
                
    wend
    Obviously, cannot show the DECRYPT_K routine... Sorry.

    The above code is not near your fail safe program and will try to fit in the code space after a clean up of the rest code.

    Ioannis
    Last edited by Ioannis; - 4th June 2022 at 14:52.

Similar Threads

  1. Using Processing to display data graphs
    By ScaleRobotics in forum Off Topic
    Replies: 6
    Last Post: - 26th November 2016, 05:16
  2. How to get ASCII data in array.
    By Ioannis in forum Serial
    Replies: 8
    Last Post: - 6th November 2008, 20:14
  3. Filling pdu array with gps data!
    By camolas in forum mel PIC BASIC Pro
    Replies: 2
    Last Post: - 4th October 2008, 00:54
  4. Data logger clock and array
    By PicLearner in forum mel PIC BASIC Pro
    Replies: 17
    Last Post: - 25th September 2008, 04:19
  5. Array data being corrupted
    By caverman in forum mel PIC BASIC Pro
    Replies: 1
    Last Post: - 17th March 2006, 04:22

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