Forum: Mikrocontroller und Digitale Elektronik MSP430 - LED mit Button togglen


von S-Te-Fan (Gast)


Lesenswert?

Hallo,

ich versuche gerade ein kleines Programm zu schreiben.

Ziel ist es die LED anzuschalten, wenn der Button auf dem MSP430 
gedrückt und gehalten wird. Sobald man den Button loslässt soll sie 
wieder ausgehen.

Hier mal der Code:
1
#include <msp430.h> 
2
3
int main(void)
4
{
5
  WDTCTL = WDTPW | WDTHOLD;
6
  PM5CTL0 &= ~LOCKLPM5;
7
8
  // turn off led on P1.0 at startup
9
  P1DIR |= BIT0;
10
  P1OUT &= ~BIT0;
11
12
  P1DIR &= ~BIT1; // P1.1 -> as input
13
  P1REN |= BIT1;  // P1.1 -> enable resistor
14
  P1OUT &= ~BIT1; // P1.1 -> pull-down resistor
15
16
  while(1) {
17
      if ((P1IN & BIT1) == BIT1) { // when BIT1 is set turn LED on
18
          P1OUT |= BIT0;
19
      } else {
20
          P1OUT &= ~BIT0;
21
      }
22
23
      __delay_cycles(1000);
24
  }
25
26
  return 0;
27
}

Komischerweise ändert sich das Register P1IN nicht, egal ob der Button 
gedrückt ist oder nicht. Dadurch bleibt natürlich auch die LED aus.

Kann mir jemand erklären, was ich hier falsch mache?

Gruß Stefan

von Wolle G. (wolleg)


Lesenswert?

Um welchen MSP430 handelt es sich?

von jha (Gast)


Lesenswert?

wolle g. schrieb:
> Um welchen MSP430 handelt es sich?

das ist das MSP430FR6989 Evaluation Board

von neuer PIC Freund (Gast)


Lesenswert?

Bei mir muss es
1
P1OUT |= BIT1; // P1.1 -> pull-up resistor

lauten, weil der Taster gegen GND schliesst.

von Hobbymusiker (Gast)


Lesenswert?

Einfach den völlig überflüssigen MSP430 durch einen 4013 ersetzen.
So erspart man sich auch die mühselige Promgrammierung.

von Wolle G. (wolleg)


Lesenswert?

Hobbymusiker schrieb:
> Einfach den völlig überflüssigen MSP430 durch einen 4013 ersetzen.
> So erspart man sich auch die mühselige Promgrammierung.

Bleib lieber bei Hobbymusik.
So erspart man sich auch den mühseligen Text.

von S-Te-Fan (Gast)


Lesenswert?

neuer PIC Freund schrieb im Beitrag #6050956:
> Bei mir muss es P1OUT |= BIT1; // P1.1 -> pull-up resistor
>
> lauten, weil der Taster gegen GND schliesst.

ok.. wenn ich dann noch die if Bedingung anpassen sollte es ja 
funktionieren.. probiere ich morgen gleich aus. Danke für den Hinweis.

Nur nochmal zum Verständnis: ich muss hier den Modus für pull-up 
resistor wählen, da die Bauart des MSPs (so wie bei vielen anderen uCs, 
wie ich gelesen habe) nunmal so gewählt wurde, richtig?

@Hobbymusiker da ich mich für mein Studium mit dem Programmieren von 
Mikrocontrollern auseinandersetzen will, ist das leider keine 
Alternative :)

von Route_66 H. (route_66)


Lesenswert?

Hobbymusiker schrieb:
> Einfach den völlig überflüssigen MSP430 durch einen 4013 ersetzen.
> So erspart man sich auch die mühselige Promgrammierung.

Der 4013 toggelt leider die LED und das ist nicht das Ziel des TO.

S-Te-Fan schrieb:
> Ziel ist es die LED anzuschalten, wenn der Button auf dem MSP430
> gedrückt und gehalten wird. Sobald man den Button loslässt soll sie
> wieder ausgehen.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.