Multiplexer channel selection


Closed Thread
Results 1 to 18 of 18

Hybrid View

  1. #1
    skimask's Avatar
    skimask Guest


    Did you find this post helpful? Yes | No

    Default

    Quote Originally Posted by Acetronics View Post
    Yes ... Ok, But ALSO inside a CODE window ...???
    could we talk about a BUGGGGGGGGG ????
    I don't know if it's a bug or not. Maybe bbCode doesn't handle nested tokens, or at least that nested token correctly, maybe it was intended to be that way.

  2. #2
    Join Date
    Apr 2008
    Location
    Berlin, Germany
    Posts
    14


    Did you find this post helpful? Yes | No

    Default

    Please stay on topic.

    Here's a summary: I have two pesky devices in my circuit. A multiplexer and a decoder.The multiplexer is connected as:
    Code:
    MUX
    '------------
    'RA5	INH
    'RA1	A
    'RA2	B
    'RA3	C
    'RA4	D
    '------------
    notice how the selection channels are on consecutive pins thus making things easy for selecting the channels:
    Code:
    'mux channel selection
    'low inh_mux
    'for i= 0 to 15
    '       Porta =  (Porta & %11000001 ) + (i *2)	'port masking for cycle purposes
    'next i
    On the other hand the decoder pins are scattered across PORT B and PORTC:
    Code:
    'DCD
    '----------
    'RE2	G1,G2	
    'RB7	A
    'RB6	B
    'RB5	C
    'RC6	D
    here's the code i've devised:

    Code:
    'dcd channel selection
    low g_dcd
    for i=0 to 15
    	portb = (portb & %00011111 ) + (i rev  3)<<5
    	portc = (portc & %10111111 ) + (i<<3)
    next i
    The PORTB pins selection works fine (meaning lines A, B and C of the decoder behave as I expected). But line D (the only one on PORTC) gives me a headache. Am I missing something in the mask ?

  3. #3
    skimask's Avatar
    skimask Guest


    Did you find this post helpful? Yes | No

    Default

    Quote Originally Posted by Castor View Post
    Please stay on topic.
    Guess what? Free help! Deal with it.

    Code:
    'dcd channel selection
    low g_dcd
    for i=0 to 15
    	portb = (portb & %00011111 ) | ( ( i rev  3 ) << 5 )
    	portc = (portc & %10111111 ) | ( i << 3 )
    next i
    OR don't ADD

  4. #4
    Join Date
    May 2004
    Location
    NW France
    Posts
    3,653


    Did you find this post helpful? Yes | No

    Default

    Quote Originally Posted by skimask View Post
    Guess what? Free help! Deal with it.

    Code:
    'dcd channel selection
    low g_dcd
    
    for i=0 to 15
    	portb = (portb & %00011111 ) | ( ( i rev  3 ) << 5 )
    	portc = (portc & %10111111 ) | ( i << 3 )
    next i
    OR don't ADD
    to get rid of the i lower bits for portC ...

    i would have used

    Code:
    portc = (portc & %10111111 ) | ( i.3 << 6 )
    but, it's me ...

    Alain
    ************************************************** ***********************
    Why insist on using 32 Bits when you're not even able to deal with the first 8 ones ??? ehhhhhh ...
    ************************************************** ***********************
    IF there is the word "Problem" in your question ...
    certainly the answer is " RTFM " or " RTFDataSheet " !!!
    *****************************************

  5. #5
    skimask's Avatar
    skimask Guest


    Did you find this post helpful? Yes | No

    Default

    Quote Originally Posted by Acetronics View Post
    portc = (portc & %10111111 ) | ( i.3 << 6 )[/code]
    I've tried to do something like that before. If I remember right, the fact that i.3 is a bit didn't work well with the << 6. It ended up shifting itself out into nowhere and always ended up being a '0'.
    Maybe that was back in the day, in an older version of PBP or something. It just seems to me like that didn't work very well.

  6. #6
    Join Date
    May 2004
    Location
    NW France
    Posts
    3,653


    Did you find this post helpful? Yes | No

    Wink

    Hi,

    I did at test on the breadboard this morning ...

    Everything fine ...

    Alain
    ************************************************** ***********************
    Why insist on using 32 Bits when you're not even able to deal with the first 8 ones ??? ehhhhhh ...
    ************************************************** ***********************
    IF there is the word "Problem" in your question ...
    certainly the answer is " RTFM " or " RTFDataSheet " !!!
    *****************************************

  7. #7
    Join Date
    Apr 2008
    Location
    Berlin, Germany
    Posts
    14


    Did you find this post helpful? Yes | No

    Default

    This is the winner:
    Code:
    portb = (portb & %00011111 ) | ( ( i rev  3 ) << 5 )
    	portc = (portc & %10111111 ) | ( i.3 << 6 )
    I've tried both in MPLAB SIM but
    Code:
    	portc = (portc & %10111111 ) | ( i << 3 )
    doesn't mask the port right.

    THANK YOU. Problem solved

  8. #8
    Join Date
    May 2004
    Location
    NW France
    Posts
    3,653


    Did you find this post helpful? Yes | No

    Wink

    Good news !

    Just for the fun ...

    How many boards saved ???

    Alain
    ************************************************** ***********************
    Why insist on using 32 Bits when you're not even able to deal with the first 8 ones ??? ehhhhhh ...
    ************************************************** ***********************
    IF there is the word "Problem" in your question ...
    certainly the answer is " RTFM " or " RTFDataSheet " !!!
    *****************************************

Similar Threads

  1. Best way to shut down HPWM channel?
    By LetTheSmokeOut in forum mel PIC BASIC Pro
    Replies: 5
    Last Post: - 26th January 2010, 22:01
  2. Timer + rc5
    By naga in forum mel PIC BASIC Pro
    Replies: 8
    Last Post: - 19th November 2009, 07:56
  3. Hserin
    By [email protected] in forum Serial
    Replies: 11
    Last Post: - 16th December 2008, 18:49
  4. 18F1320 ADC multiple channel select
    By jmgelba in forum mel PIC BASIC Pro
    Replies: 1
    Last Post: - 28th November 2005, 21:40
  5. 16F819 ADCIN Channel Select?
    By modifyit in forum mel PIC BASIC Pro
    Replies: 3
    Last Post: - 27th April 2005, 18:31

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