botón pulsador externo de interfaz a msp430 usando energia

Estoy escribiendo código en Energia usando la plataforma de lanzamiento mso430g2553 y un botón externo con una resistencia pullup. El código simplemente debe mostrar el estado del botón en el monitor serial, 1 para presionar, 0 para no presionar. Este es el código que estoy usando:

int pushButton = 5;
void setup() {
// initialize serial communication at 9600 bits per second:
Serial.begin(9600);
// make the pushbutton's pin an input:
// NOTE this is different from the on-board pushbutton
pinMode(pushButton, INPUT);
}

// the loop routine runs over and over again forever:
void loop() {

// read the input pin:
int buttonState = digitalRead(pushButton);
// print out the state of the button:
Serial.println(buttonState);
delay(1);        // delay in between reads for stability
}  

Esta es la configuración del circuito que estoy usando:

ingrese la descripción de la imagen aquí

Mi problema es que cuando ejecuto el programa, siempre obtengo 0 sin importar si el botón está presionado o no. Parece que el programa no está leyendo la entrada del botón, o conecté el botón de manera incorrecta. Sin embargo, parece que no puedo encontrar el problema, intenté girar el botón 90 grados y conecté las patas opuestas del botón a tierra y al pin. ¿Sería una solución agregar un condensador antirrebote tal vez? ¡Cualquier ayuda sería muy apreciada!

¿ Cómo int pushButton = 5;asigna su interruptor al pin de hardware P1.3?
De acuerdo con el pinout MSP430g2553 ( energia.nu/img/LaunchPadMSP430G2452-v1.5.jpg ), el pin 5 corresponde a P1.3, por lo tanto, utilicé esa notación.
Entonces, ¿no hiciste ningún cambio con respecto al tutorial ? Muestra una foto de tu circuito.
No, no hice cambios del tutorial, usé el mismo circuito con una resistencia de 10k y el mismo código para usar un botón externo. Sin embargo, parece que no puedo hacerlo funcionar, imprime solo un valor o funciona correctamente y luego deja de funcionar aleatoriamente e imprime solo un valor.
Bueno, desde github.com/energia/Energia/blob/master/hardware/msp430/variants/… ... static const uint8_t P1_3 = 5;entonces el pin se ve bien. Mida los voltajes reales en ese pin a continuación...
¿Tienes el botón al revés? Tienen 4 pines, y si lo conecta a 90 grados de donde debería estar, encontrará que la entrada está en cortocircuito a tierra.
El problema era la orientación de los botones, ¡ahora funciona correctamente! ¡Gracias por la ayuda!

Respuestas (1)

Según OP en los comentarios, como lo cuestionó @TomCarpenter, el problema era la orientación del interruptor táctil de 4 pines que OP estaba usando. La conexión conmutada no se estaba utilizando, vinculando P1.3 a tierra de forma permanente.