Masking address bits


Results 1 to 13 of 13

Threaded View

  1. #9
    Join Date
    Mar 2003
    Location
    Commerce Michigan USA
    Posts
    1,166


    Did you find this post helpful? Yes | No

    Default

    Demon, This is the code I assumed would work:

    UNIT0 CON %01110000 'U5's CONTROL BYTE (PCF8574A) I/O EXPANDER

    ************************************************** ********
    R_WI2CSW:'READ DIGITAL INPUTS FROM or WRITE DIGITAL OUTPUTS TO PCF8574'S
    ************************************************** ********
    SWCNTR = 0
    WHILE SWCNTR < 6
    CONTROL = UNIT0 | (SWCNTR << 1)
    IF READ_WRITE = 0 THEN 'READ INPUT STATUS FROM PCF8574'S
    I2CREAD SDA,SCL,CONTROL,[SWITCHES(SWCNTR)]
    ELSE 'WRITE OUTPUT STATE TO PCF8574'S
    I2CWRITE SDA,SCL,CONTROL,[OUTPUTS(SWCNTR)]
    ENDIF
    SWCNTR = SWCNTR + 1
    WEND
    RETURN

    But it didn't work as explained in my earlyer post. This is what I had to do instead:

    UNIT0 CON %01110000 'U5's CONTROL BYTE (PCF8574A) I/O EXPANDER
    UNIT1 CON %01110010 'U6's CONTROL BYTE (PCF8574A) I/O EXPANDER
    UNIT2 CON %01110100 'U7's CONTROL BYTE (PCF8574A) I/O EXPANDER
    UNIT3 CON %01110110 'U11's CONTROL BYTE (PCF8574A) I/O EXPANDER
    UNIT4 CON %01111000 'U12's CONTROL BYTE (PCF8574A) I/O EXPANDER
    UNIT5 CON %01111010 'U13's CONTROL BYTE (PCF8574A) I/O EXPANDER


    ************************************************** ********
    R_WI2CS:'READ DIGITAL INPUTS FROM or WRITE DIGITAL OUTPUTS TO PCF8574'S
    ************************************************** ********
    IF READ_WRITE = 0 THEN 'READ INPUT STATUS FROM PCF8574'S
    I2CREAD SDA,SCL,UNIT0,[SWITCHES(0)]
    I2CREAD SDA,SCL,UNIT1,[SWITCHES(1)]
    I2CREAD SDA,SCL,UNIT2,[SWITCHES(2)]
    I2CREAD SDA,SCL,UNIT3,[SWITCHES(3)]
    I2CREAD SDA,SCL,UNIT4,[SWITCHES(4)]
    I2CREAD SDA,SCL,UNIT5,[SWITCHES(5)]
    ELSE
    I2CWRITE SDA,SCL,UNIT0,[OUTPUTS(0)]
    I2CWRITE SDA,SCL,UNIT1,[OUTPUTS(1)]
    I2CWRITE SDA,SCL,UNIT2,[OUTPUTS(2)]
    I2CWRITE SDA,SCL,UNIT3,[OUTPUTS(3)]
    I2CWRITE SDA,SCL,UNIT4,[OUTPUTS(4)]
    I2CWRITE SDA,SCL,UNIT5,[OUTPUTS(5)]
    ENDIF
    RETURN

    Now very elegant......

    Dave Purola,
    N8NTA
    Last edited by Demon; - 4th October 2016 at 18:06.

Similar Threads

  1. Bits, Bytes Words and Arrays
    By Melanie in forum FAQ - Frequently Asked Questions
    Replies: 24
    Last Post: - 14th June 2016, 07:55
  2. Instant Interrupts - Revisited
    By Darrel Taylor in forum Code Examples
    Replies: 772
    Last Post: - 17th February 2016, 22:14
  3. RF Transmitter
    By et_Fong in forum mel PIC BASIC Pro
    Replies: 4
    Last Post: - 27th October 2005, 16:34
  4. error on compiling
    By parker in forum mel PIC BASIC Pro
    Replies: 0
    Last Post: - 16th June 2005, 14:31
  5. 18f452 internal eprom help
    By TONIGALEA in forum mel PIC BASIC Pro
    Replies: 13
    Last Post: - 13th July 2004, 15:50

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