msp430 mit Button als Schalter

Ich versuche dies ( http://www.arduino.cc/en/Tutorial/Switch ) ohne externe Teile zu verwenden, da ich das Schaltflächenbeispiel von derselben Site mit diesem Code verwenden konnte: http://en.textsave .org/VjL ) mit meinem msp430g2553 mit Energia, aber es funktioniert nicht, irgendeine Hilfe?

const int buttonPin = PUSH2;     // the number of the pushbutton pin
const int ledPin =  GREEN_LED;   // the number of the LED pin

int state = HIGH;      // the current state of the output pin
int reading;           // the current reading from the input pin
int previous = LOW;    // the previous reading from the input pin

// the follow variables are long's because the time, measured in miliseconds,
// will quickly become a bigger number than can be stored in an int.
long time = 0;         // the last time the output pin was toggled
long debounce = 200;   // the debounce time, increase if the output flickers

void setup(){
pinMode(buttonPin, INPUT);
pinMode(ledPin, OUTPUT);}

void loop(){
reading = digitalRead(ledPin);

// if the input just went from LOW and HIGH and we've waited long enough
// to ignore any noise on the circuit, toggle the output pin and remember
// the time
if (reading == HIGH && previous == LOW && millis() - time > debounce) {
if (state == HIGH){
  state = LOW;
}
else
  state = HIGH;
  time = millis();    }

digitalWrite(ledPin, state);
previous = reading;}
Was funktioniert daran nicht, hast du einen Schaltplan?
Hast du es schon geschafft, Debounce zum Laufen zu bringen?
Ist der ButtonPin doppelt als analoger Eingang? Wenn ja, ist es als digitaler Anschluss eingestellt? Das Datenblatt schlägt vor, dass der digitale Eingang nicht funktioniert, wenn er als analog konfiguriert ist.
Die grüne LED leuchtet nur und nichts passiert, wenn ich die Taste drücke. Nach Seite 18 finden Sie einige Schaltpläne: ti.com/lit/ug/slau318d/slau318d.pdf
ich habe das versucht: energia.nu/Tutorial_Debounce.html aber nichts passiert, wenn ich pinMode (buttonPin, INPUT) ändere; als PinMode (ButtonPin, INPUT_PULLUP); Es funktioniert wie in diesem Schaltflächenbeispiel. Ich habe nicht einmal bemerkt, dass dies dasselbe ist, was ich versucht habe.
DrRobotNinja, ich habe keine Ahnung, was das bedeutet.

Antworten (1)

Äh, höchstwahrscheinlich verwenden Sie ein Launchpad der Version 1.5. Der externe Pullup-Pin für die p1.3-Taste ist nicht bestückt. Da es nicht besetzt ist, gibt es keine stationäre Zustandsänderung. Sie müssen den internen Pullup aktivieren.

Statt pinMode(buttonPin);nutzenpinMode(buttonPin, INPUT_PULLUP);

Außerdem versuchen Sie, den falschen Pin zu lesen.

Statt reading = digitalRead(ledPin);nutzenreading = digitalRead(buttonPin);

nichts passiert, wenn ich es auf pinMode (buttonPin, INPUT_PULLUP) ändere; und lesen = digitalRead (ledPin); ist in meinem Code gleich.
und ja ich benutze rev 1.5
@Cagurtay der Leseteil ist falsch. Denken Sie darüber nach ...
Bah ... Es tut mir leid, ich habe Variablen auf mein Kit umgestellt, aber versehentlich Ausgabe anstelle von Eingabe gesetzt. Lesen = digitalRead (buttonPin); , Danke.