This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Bank switch code reads port, not latch.

The sample L51_BANK.A51 module uses the following code to determine the current bank:

?B_BANK&N:
                MOV     A,?B_CURRENTBANK
                ANL     A,#?B_MASK
                CJNE    A,#BANK&N,XLABEL

                ; etc...

For 8051 compatible devices, shouldn't it use a R-M-W instruction, so that it reads the latch, rather than the port? Something like:

?B_BANK&N:
                CLR     A
                ORL     A, ?B_CURRENTBANK
                ANL     A,#?B_MASK
                CJNE    A,#BANK&N,XLABEL

                ; etc...

Parents
  • Seems so.
    In fact, if current loading of P1 is not so much (for example, if 74N244/245 buffer used) then it is still correct because you will read value from pin same as from latch.
    Anyway, some MCU have different input/output schemes and reading from pin which previously was set to 0, does not guarantee same value back. Yeah, seems it is error really.
    Good days!

Reply
  • Seems so.
    In fact, if current loading of P1 is not so much (for example, if 74N244/245 buffer used) then it is still correct because you will read value from pin same as from latch.
    Anyway, some MCU have different input/output schemes and reading from pin which previously was set to 0, does not guarantee same value back. Yeah, seems it is error really.
    Good days!

Children
No data