如何找到我的输入连接到 PIC32 中的哪个 I/O 寄存器
How to find which I/O register in PIC32 my input is connected to
我在 chipkit max32 上有一个 PIC32MX795F512L。
当我连接的按钮被按下时,我需要使用程序集来读取。
在查看文档 (http://ww1.microchip.com/downloads/en/DeviceDoc/61120D.pdf) 时,它说使用了 TRISx、PORTx、LATx 寄存器。但是我如何找到正确的呢?如果电路板上的引脚显示它连接到 pic 32 的引脚 74,那么它只是 TRIS74、PORT74、LAT74 吗?
在电路板的参考资料中(http://www.digilentinc.com/Data/Products/CHIPKIT-MAX32/chipKIT_Max32_RM.pdf 第 11 页)它说该引脚的 PIC32 信号是 SOSCO/T1CK/CN0/RC14,但我不知道那是什么意思。
我很困惑。任何帮助将不胜感激。我花了几个小时试图解决这个问题,但无济于事。谢谢
所有这些都在各种 application/specification sheet 中进行了解释。据我所知,这些一开始可能会让人不知所措,我将在这里总结一下:
TRISx 是您将引脚设置为输入或输出时的三态控制寄存器。
LATx 是输出锁存寄存器,您可以设置输出值(如果在 TRISx 寄存器中设置为输出)。
PORTx 是端口读取寄存器,您可以读取端口值(如果在 TRISx 寄存器中设置为输入)。
根据您要使用的引脚,可能有一些其他寄存器可能会限制您读取所述引脚的能力,例如将引脚设置为模拟模式(禁用数字输入)的 ANSELx 寄存器。
有关哪个引脚属于哪个 ***.x 的信息,请查看您的处理器的主要规格 sheet。从您提供的 link 来看,您使用的电路板似乎是 TQFP,因此,规范 sheet (http://ww1.microchip.com/downloads/en/DeviceDoc/61156H.pdf) 的第 15 页应该有您要查找的信息。使用上面的 pin 74 示例,它被标记为 "SOSCO/T1CK/CN0/RC14"。重要的部分是RC14,它表示PORT C,第14位。
要读取它,您可以执行 PORTCbits.PORTC14 或 "if(PORTC & 0x4000)..."。其他寄存器的工作方式相同 ("TRISCbits.TRISC14 = 0; LATCbits.LATC14 = 1;")。
我在 chipkit max32 上有一个 PIC32MX795F512L。
当我连接的按钮被按下时,我需要使用程序集来读取。
在查看文档 (http://ww1.microchip.com/downloads/en/DeviceDoc/61120D.pdf) 时,它说使用了 TRISx、PORTx、LATx 寄存器。但是我如何找到正确的呢?如果电路板上的引脚显示它连接到 pic 32 的引脚 74,那么它只是 TRIS74、PORT74、LAT74 吗?
在电路板的参考资料中(http://www.digilentinc.com/Data/Products/CHIPKIT-MAX32/chipKIT_Max32_RM.pdf 第 11 页)它说该引脚的 PIC32 信号是 SOSCO/T1CK/CN0/RC14,但我不知道那是什么意思。
我很困惑。任何帮助将不胜感激。我花了几个小时试图解决这个问题,但无济于事。谢谢
所有这些都在各种 application/specification sheet 中进行了解释。据我所知,这些一开始可能会让人不知所措,我将在这里总结一下:
TRISx 是您将引脚设置为输入或输出时的三态控制寄存器。 LATx 是输出锁存寄存器,您可以设置输出值(如果在 TRISx 寄存器中设置为输出)。 PORTx 是端口读取寄存器,您可以读取端口值(如果在 TRISx 寄存器中设置为输入)。
根据您要使用的引脚,可能有一些其他寄存器可能会限制您读取所述引脚的能力,例如将引脚设置为模拟模式(禁用数字输入)的 ANSELx 寄存器。
有关哪个引脚属于哪个 ***.x 的信息,请查看您的处理器的主要规格 sheet。从您提供的 link 来看,您使用的电路板似乎是 TQFP,因此,规范 sheet (http://ww1.microchip.com/downloads/en/DeviceDoc/61156H.pdf) 的第 15 页应该有您要查找的信息。使用上面的 pin 74 示例,它被标记为 "SOSCO/T1CK/CN0/RC14"。重要的部分是RC14,它表示PORT C,第14位。
要读取它,您可以执行 PORTCbits.PORTC14 或 "if(PORTC & 0x4000)..."。其他寄存器的工作方式相同 ("TRISCbits.TRISC14 = 0; LATCbits.LATC14 = 1;")。