RF12 module need to convert some C to Basic - Page 2


Closed Thread
Page 2 of 2 FirstFirst 12
Results 41 to 44 of 44
  1. #41
    Join Date
    Jan 2013
    Posts
    64


    Did you find this post helpful? Yes | No

    Default Re: RF12 module need to convert some C to Basic

    Hi,
    Is this thread still open?
    I would like to ask questions
    Camerart

  2. #42
    Join Date
    Aug 2003
    Posts
    985


    Did you find this post helpful? Yes | No

    Default Re: RF12 module need to convert some C to Basic

    I’m struggling to find C code in this thread that isn’t directly converted to PBP.

    C:
    Code:
    temp|=DATA;
    PBP:
    Code:
    temp = temp|data'
    C falls short of PBP or asm for bitwise operations because you can never access a bit in a single instruction,
    hence the bit mask is being used in C to only write the set bits in the temp variable.
    Code:
    B800 = 1011100000000000
    DATA = 0000000000001111
    
    B800 | DATA = 1011100000001111
    If you’re clocking the external chip, and then feeding the pic it’s output clock that would normally be a very good idea
    because once you send the command to PLL the external chip's clock higher, both chips are clocked at the higher speed,
    and no timing adjustment of the SPI or SHIFTOUT routines should need adjusting,
    EXCEPT for the fact that the pic’s instruction clock is divided by 4, so the two chip’s practical instruction timing is not increased evenly,
    so you will need two different communication timings for the two different speeds of the external chip.

  3. #43
    Join Date
    Aug 2003
    Posts
    985


    Did you find this post helpful? Yes | No

    Default Re: RF12 module need to convert some C to Basic

    All of the While loops are the same as PBP While...WEND where the closing brace is WEND.

    Code:
       n=16;
       while(n--) {dosomething();}
    Code:
    n=16;
    WHILE (n > 0)
    gosub dosomething’
    n = n - 1'
    WEND

  4. #44
    Join Date
    Aug 2003
    Posts
    985


    Did you find this post helpful? Yes | No

    Default Re: RF12 module need to convert some C to Basic

    Nops in this function are a delay. The function (subroutine as you worked out) sends a single zero value out of the SPI bus.
    If you were to set SCK low, and then high again in the very next instruction, the receiving device might miss the signal.
    Especially if the external device runs slower than the transmitting device. You can use @nop in PBP.

    Since there are several flavours of SPI, it would be better to reproduce this then use PBP SHIFTOUT (unless it’s already working).
    They are really only turning two port bits on & off.

    Code:
    writezero:
    portb.something = 0’ clear SPI data
    portb.something = 0’ clear clock pin, the receiver will look at the value of the SPI data bit now.
    delay
    portb.something = 1’ set the clock pin, the receiver will look for the next bit on the next rising edge (next time you call this function, or the writeone function).
    Code:
    void Write0( void )
    {
      SDI=0;
      SCK=0;
      NOP();
      NOP();
      NOP();
      NOP();
      NOP();
      NOP();
      NOP();
      NOP();
      NOP();
      NOP();
      NOP();
      NOP();
      NOP();
      NOP();
      NOP();
      NOP();
      SCK=1;
      NOP();
    }
    Last edited by Art; - 8th October 2016 at 10:50.

Similar Threads

  1. Version Control
    By btaylor in forum mel PIC BASIC Pro
    Replies: 33
    Last Post: - 16th October 2011, 17:12
  2. Loop with two motor and 2 sensors
    By MrRoboto in forum mel PIC BASIC
    Replies: 4
    Last Post: - 8th December 2008, 23:40
  3. Replies: 1
    Last Post: - 27th July 2008, 06:14
  4. using AND as an IF statement
    By dw_pic in forum mel PIC BASIC
    Replies: 27
    Last Post: - 8th June 2006, 18:05
  5. convert Basic Stamp2 (BS2) => Pic
    By bs2rdu in forum mel PIC BASIC Pro
    Replies: 7
    Last Post: - 15th September 2005, 19:55

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