跳转到主内容
Knowledgebase
Home
Renesas Electronics China - Knowledgebase

用比特处理指令(BSET、BCLR等)改写输入输出端口的端口锁存器时,未指定的比特的值就会改变,为什么?

最新更新:04/22/2009

Question:

用比特处理指令(BSET、BCLR等)改写输入输出端口的端口锁存器时,未指定的比特的值就会改变,为什么?

Answer:

输入输出端口可以以比特为单位设定输入模式或输出模式。

如果要对端口寄存器进行读出、写入,可如下操作:

  • 输入模式的端口
    读出:读引脚的电平。
    写入:写到端口锁存器。
  • 输出模式的端口
    读出:读端口锁存器,或读外围功能的输出(规格因端口而异)。
    写入:写到端口锁存器(从引脚输出端口锁存器的内容)。

一方面,由于比特处理指令是读-修改-写指令*1,所以在端口寄存器上执行比特处理指令时,未被指令指定的比特也同时进行读出及写入。

未指定的比特在输入模式下读引脚的电平,将其值写到端口锁存器。这时,如果原来的端口锁存器的内容与端口的电平不同,便改变端口锁存器的内容。未指定的比 特在输出模式下基本上是读端口锁存器,但也有读外围功能的输出的端口,将其值写到端口锁存器。这时,如果原来的端口锁存器的内容与外围功能的输出不同,端 口锁存器的内容便改变。

 

*1读-修改-写指令:以字节为单位读存储器,进行加工(修改),并以字节为单位写入原来的存储器的指令。

Suitable Products
R8C/1x
R8C/2x
R8C/3x
R8C/Lx
R8C/Mx