我有一个 MSP430 G2452 连接了几个拨动开关(阅读:NOT 按钮)。我知道如何设置中断和去抖动按钮,但是我很难设置我的端口,所以我可以采样哪些开关是关闭/打开的。
我希望能够读取 P1IN(带屏蔽)以找出哪些开关是关闭/打开的,哪些是打开/关闭的。开关连接到 GND,我将它们连接的引脚拉高,所以当开关闭合/打开时,它连接的引脚应该被拉低。但 P1IN 似乎没有改变。
我可以设置一个在引脚接地时触发的中断,但我只想对引脚进行采样,而不是使用中断。如何设置我的端口引脚,以便我可以使用 PxIN 读取它们的状态?
// Port 1 setup
P1SEL = 0; // set P1 as digital I/O for all pins
P1DIR = ~sw1to6; // set switches 1-6 for input
P1OUT = sw1to6; // enable pull-ups on switches 1-6
P1REN |= sw1to6; // enable pull-up resistors on switches 1-6
(头文件定义:)
// P1.0-1.5
#define sw1 0x01
#define sw2 0x02
#define sw3 0x04
#define sw4 0x08
#define sw5 0x10
#define sw6 0x20
#define sw1to6 sw1 | sw2 | sw3 | sw4 | sw5 | sw6