SHIFTOUT MSB/LSBFIRST clarification


Closed Thread
Results 1 to 18 of 18
  1. #1
    Join Date
    Jun 2008
    Location
    Varese , Italy
    Posts
    326

    Default SHIFTOUT MSB/LSBFIRST clarification

    good day to all in this forum,
    I am using PicBasic pro to load an 8 bit shift register and I wrote a very simple program like this:

    INCLUDE "MODEDEFS.BAS"
    DT var byte
    DT=128 ' decimal
    SHIFTOUT H_DATA,H_CLK,msbfirst ,[DT\8]

    Then I do suppose that the MSB ( in this case "1" ) is transmitted first and then "0000000" is transmitted after it.
    By looking to the output stream with a scope, I find that the bit at logic level = high ( dec 128) is shown to the left side of the scope and not at the right side of the scope display.
    I am just a little bit confuesd about that: any clarification please ?
    Thanks in advance.
    bye

  2. #2


    Did you find this post helpful? Yes | No

    Default Re: SHIFTOUT MSB/LSBFIRST clarification

    I haven't done this in a long time but here is a snippet of code I used to send by SPI to a device:

    Low PORTA.3 : Pause 10 'CHIP SELECT
    ShiftOut PORTC.5,PORTC.3,0,[9254\16] 'playconfig0
    ShiftOut PORTC.5,PORTC.3,0,[114\8] '1st play byte
    High PORTA.3 : Pause 10 'deselect - end of word

    The 0 after portc.3 means send code LSB. A 1 would send it MSB.
    Last edited by peterdeco1; - 26th May 2021 at 20:25.

  3. #3
    Join Date
    Jun 2008
    Location
    Varese , Italy
    Posts
    326


    Did you find this post helpful? Yes | No

    Default Re: SHIFTOUT MSB/LSBFIRST clarification

    thanks a lot,
    Is your SPI device set to receive MSBfirst or LSBfirst please ?
    Bye

  4. #4
    Join Date
    May 2013
    Location
    australia
    Posts
    2,380


    Did you find this post helpful? Yes | No

    Default Re: SHIFTOUT MSB/LSBFIRST clarification

    time on a scope flows from left to right
    Name:  scope.jpg
Views: 431
Size:  68.2 KB
    Warning I'm not a teacher

  5. #5
    Join Date
    Jun 2008
    Location
    Varese , Italy
    Posts
    326


    Did you find this post helpful? Yes | No

    Default Re: SHIFTOUT MSB/LSBFIRST clarification

    I am so sorry Richard:
    if the time flows from left to right, then the first bit sent should be on the right and not to the left of the scope !
    Where am I wrong please ?
    Bye

  6. #6
    Join Date
    May 2013
    Location
    australia
    Posts
    2,380


    Did you find this post helpful? Yes | No

    Default Re: SHIFTOUT MSB/LSBFIRST clarification

    which second was recorded first in time sequence ?

    Name:  scope.jpg
Views: 384
Size:  93.1 KB
    Warning I'm not a teacher

  7. #7
    Join Date
    May 2013
    Location
    australia
    Posts
    2,380


    Did you find this post helpful? Yes | No

    Default Re: SHIFTOUT MSB/LSBFIRST clarification

    slow your timbase right down , what direction does the dot travel

    the dot having writ moves on
    Last edited by richard; - 27th May 2021 at 11:41.
    Warning I'm not a teacher

  8. #8
    Join Date
    Jun 2008
    Location
    Varese , Italy
    Posts
    326


    Did you find this post helpful? Yes | No

    Default Re: SHIFTOUT MSB/LSBFIRST clarification

    the first bit sent out by the pic should be on the right ( 9 seconds old )
    The last bit sent by the pic should be on the left ( 0 seconds old )

    I am sorry for not understanding...
    thanks

  9. #9
    Join Date
    May 2013
    Location
    australia
    Posts
    2,380


    Did you find this post helpful? Yes | No

    Default Re: SHIFTOUT MSB/LSBFIRST clarification

    last try
    Name:  scope.jpg
Views: 401
Size:  89.3 KB
    Warning I'm not a teacher

  10. #10
    Join Date
    Jun 2008
    Location
    Varese , Italy
    Posts
    326


    Did you find this post helpful? Yes | No

    Default Re: SHIFTOUT MSB/LSBFIRST clarification

    thanks again,
    I am sorry for not understand...
    If I slow down the scope time base the dot goes from left to right.
    So the first bit transmitted by the PIC is always to the right of the scope and the last transmitted by the PIC is shown to the left.
    Am I right ?
    Then the 9 seconds old bit is the first transmitted by the PIC.
    The 0 secs old bit is the last transmitted by the PIC.
    Is it right ?
    Thanks

  11. #11
    Join Date
    Jun 2008
    Location
    Varese , Italy
    Posts
    326


    Did you find this post helpful? Yes | No

    Default Re: SHIFTOUT MSB/LSBFIRST clarification

    sorry: I did not tell that I am talking about the PIC output .
    Thanks

  12. #12
    Join Date
    May 2013
    Location
    australia
    Posts
    2,380


    Did you find this post helpful? Yes | No

    Default Re: SHIFTOUT MSB/LSBFIRST clarification

    completely wrong , the first bit is on the left
    Warning I'm not a teacher

  13. #13
    Join Date
    Jun 2008
    Location
    Varese , Italy
    Posts
    326


    Did you find this post helpful? Yes | No

    Default Re: SHIFTOUT MSB/LSBFIRST clarification

    could you please check in the real situation:

    connect the PIC DATA output to scope ch_1
    connect the PIC clock output to scope ch_2 and set the trigger to this channel.
    Tranmit bin 00000011 ( dec 3 ) \8 selecting MSB FIRST. and insert a small delay in the main loop just for better scope triggering. My scope is a old style !

    What do you see on the scope ? 00000011 or 11000000 ?
    Or better: do you see "11" to the right side or to the left side of the scope ?

    Thanks for helping
    regards

  14. #14


    Did you find this post helpful? Yes | No

    Default Re: SHIFTOUT MSB/LSBFIRST clarification

    You will send 00000011.

  15. #15
    Join Date
    Jun 2008
    Location
    Varese , Italy
    Posts
    326


    Did you find this post helpful? Yes | No

    Default Re: SHIFTOUT MSB/LSBFIRST clarification

    Hi Peter,
    could you please clarify better ?
    ( my English is not a first language )
    Thanks

  16. #16
    Join Date
    Jun 2008
    Location
    Varese , Italy
    Posts
    326


    Did you find this post helpful? Yes | No

    Default Re: SHIFTOUT MSB/LSBFIRST clarification

    iT IS MY FAULT:
    Richard explanation is correct as usual !
    Thanks for all.
    All the best
    regards,
    Bye

  17. #17
    Join Date
    Nov 2003
    Location
    Greece
    Posts
    3,795


    Did you find this post helpful? Yes | No

    Default Re: SHIFTOUT MSB/LSBFIRST clarification

    In the first post you said the number was 128 (10000000 in binary) so the MSB is indeed a '1'.

    But on the last post you saw a number 3 (00000011 in binary) so the MSB is a '0'.

    Ioannis

  18. #18
    Join Date
    Jun 2008
    Location
    Varese , Italy
    Posts
    326


    Did you find this post helpful? Yes | No

    Default Re: SHIFTOUT MSB/LSBFIRST clarification

    thanks for the response,
    I had on my mund a shift register that will receive the serial stream from the PIC and I did associated the scope display to the shift register...
    I was in error when I thought that the first bit on the left hand side of the scope is the last transmitted by the PIC: the first bit bit on the left of the scope is the first transmitted and the last bit to the right is the last transmitted.
    Again, it was my fault .
    Thanks for the assistance.
    regards,Bye

Similar Threads

  1. Need to flip order of bits MSB to LSB re: MCP23S17
    By Ryan7777 in forum mel PIC BASIC Pro
    Replies: 8
    Last Post: - 30th May 2015, 02:42
  2. MSB Compile error
    By RFEFX in forum PBP3
    Replies: 2
    Last Post: - 26th January 2015, 07:32
  3. DT Instant Interrupts - Clarification?
    By Aussie Barry in forum mel PIC BASIC Pro
    Replies: 22
    Last Post: - 26th December 2013, 13:45
  4. Replies: 4
    Last Post: - 7th April 2013, 01:46
  5. Pro upgrade clarification
    By fowardbias in forum mel PIC BASIC Pro
    Replies: 2
    Last Post: - 24th January 2010, 22:17

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