Anbindung eines externen Tasters an msp430 mit energia

Ich schreibe Code in Energia mit dem Launchpad mso430g2553 und einem externen Taster mit Pullup-Widerstand. Der Code sollte einfach den Zustand der Schaltfläche auf dem seriellen Monitor anzeigen, 1 für gedrückt, 0 für nicht gedrückt. Dies ist der Code, den ich verwende:

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
}  

Dies ist die Schaltungskonfiguration, die ich verwende:

Geben Sie hier die Bildbeschreibung ein

Mein Problem ist, dass ich beim Ausführen des Programms immer 0 bekomme, egal ob die Taste gedrückt ist oder nicht. Es scheint, als ob das Programm die Eingabe von der Schaltfläche nicht liest oder ich die Schaltfläche falsch angeschlossen habe. Ich kann das Problem jedoch nicht finden, ich habe versucht, den Knopf um 90 Grad zu drehen, und ich habe die gegenüberliegenden Beine des Knopfes mit Masse und dem Stift verbunden. Wäre eine Lösung vielleicht, einen Entprellkondensator hinzuzufügen? Jede Hilfe wäre sehr willkommen!

Wie ordnet int pushButton = 5;Ihr Schalter dem Hardware-Pin P1.3 zu?
Gemäß der MSP430g2553-Pinbelegung ( energia.nu/img/LaunchPadMSP430G2452-v1.5.jpg ) entspricht Pin 5 P1.3, daher habe ich diese Notation verwendet.
Sie haben also keine Änderungen gegenüber dem Tutorial vorgenommen ? Zeigen Sie ein Foto Ihrer Schaltung.
Nein, ich habe keine Änderungen gegenüber dem Tutorial vorgenommen, ich habe dieselbe Schaltung mit 10k-Widerstand und denselben Code für die Verwendung eines externen Tasters verwendet. Aber ich kann es anscheinend nicht zum Laufen bringen, es druckt nur einen Wert oder es funktioniert richtig und hört dann zufällig auf zu arbeiten und druckt nur einen Wert.
Nun von github.com/energia/Energia/blob/master/hardware/msp430/variants/… ... static const uint8_t P1_3 = 5;also sieht der Pin OK aus. Messen Sie als nächstes die tatsächlichen Spannungen an diesem Pin ...
Hast du den Knopf richtig herum? Sie haben 4 Pins, und wenn Sie sie zufällig bei 90 Grad von der Stelle anschließen, an der sie sein sollten, werden Sie feststellen, dass der Eingang mit Masse kurzgeschlossen ist.
Das Problem war die Tastenausrichtung, jetzt funktioniert es richtig! Danke für die Hilfe!

Antworten (1)

Laut OP in Kommentaren, wie von @TomCarpenter befragt, war das Problem die Ausrichtung des 4-poligen Taktschalters, den OP verwendete. Die geschaltete Verbindung wurde nicht verwendet und P1.3 dauerhaft mit Masse verbunden.