gpt4 book ai didi

port - PIC 18F 上 PORT 和 LATCH 的区别

转载 作者:行者123 更新时间:2023-12-03 10:32:51 28 4
gpt4 key购买 nike

我已经阅读了数据表和谷歌,但我仍然不明白。

就我而言,我将 PIC18F26K20 的 PIN RC6 设置为 INPUT 模式:

TRISCbits.TRISC6 = 1;



然后我用 PORT 和 LATCH 读取值,我有不同的值!

v1 = LATCbits.LATC6;

v2 = PORTCbits.RC6;



v1 给我 0,而 v2 给我 1。

正常吗?在哪种情况下我们必须使用 PORT,在哪种情况下使用 LATCH?

最佳答案

我会适应 my answer从电气工程。

让我们使用手册中的图片:

Generic I/O Port Operation

当您在 I/O 引脚中写入一个位时,您正在将该位从数据总线存储到数据寄存器 (D-FlipFlop)。如果该位的 TRISx 为 0,则来自数据寄存器 Q 的数据将在 I/O 引脚中。写入 LATx 或 PORTx 是一样的。见下图红色:

Generic I/O Port Operation Write

另一方面,从 LATx 读取不同于从 PORTx 读取。

当您从 LATx 读取数据时,您正在读取数据寄存器 (D-FlipFlop) 中的内容。见下图绿色:

Generic I/O Port Operation Read LATx

当您从 PORTx 读取数据时,您正在读取实际的 I/O 引脚值。见下图蓝色:

Generic I/O Port Operation Read PORTx

PIC 使用 read-modify-write 进行写操作,这可以是 problem ,所以他们使用这个影子寄存器来避免它。

关于port - PIC 18F 上 PORT 和 LATCH 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2623428/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com