Tastenentprellung mit MSP430

Gast #235885
Lesenswert?

ich weiß, es ist ein alter hut, doch ich habe enorme probleme damit. es
will einfach nicht klappen :(

ich habe pin 1.1 als interruptfähigen input konfiguriert und eine
interruproutine wie folgend geschrieben.
1
#pragma vector=PORT1_VECTOR
2
__interrupt void PORT1(void)
3
{
4
  for(m=0;m<=500;m++)//warte einige zeit
5
  _DINT();//interrupts aus machen
6
  {
7
    if(P1IFG & 0x01)// kam der interrupt vom p1.1?
8
    {
9
      P1OUT |= 0x02;   //led an, wenn taste gedrückt
10
      if(i < 0x1f)
11
      {
12
        i++;
13
      }
14
      else
15
      {
16
        i = 0;
17
      }   
18
    }
19
  }
20
  P1IFG &=~ 0x01;//löschen des interrupts
21
  P1OUT &=~ 0x02;//led wieder aus
22
  _EINT();//interrupt wieder an
23
}

was nicht funktioniert: bei jeder betätigung des tasters soll die
globale variable bis zu einem bestimmten wert jeweils um 1 hochgezählt
werden. tut sie jedoch nicht, sie zählt viele male pro betätigung des
tasters.

könnt ihr mir helfen?
Gast #235887
Lesenswert?

ach nö... heute ist nicht mein tag. "wenn der letzte fehler raus ist,
dann läuft`s" << weiser spruch ;-)
1
#pragma vector=PORT1_VECTOR
2
__interrupt void PORT1(void)
3
{
4
  _DINT();//interrupts aus machen
5
  for(m=0;m<=2500;m++);//warte einige zeit
6
  if(P1IFG & 0x01)// kam der interrupt vom p1.1?
7
  {
8
    P1OUT |= 0x02;   //led an, wenn taste gedrückt
9
    if(i < 0x1f)
10
    {
11
      i++;
12
    }
13
    else
14
    {
15
      i = 0;
16
    }   
17
  }
18
  P1IFG &=~ 0x01;//löschen des interrupts
19
  P1OUT &=~ 0x02;//led wieder aus
20
  _EINT();//interrupt wieder an
21
}

komischerweise läuft es jetzt (nur, wenn ich eine groundfläche
berühre...)

der taster hängt mit vorwiderstand an der versorgungsspannung
Gast #235889
Lesenswert?

och meno... jetzt läuft es viel zu langsam.

wenn ich den taster betätige, dann braucht er (schätzungsweise) 1 sec,
bis ich sie erneut drücken darf. als ich aber aus versehen den kontakt
mit dem finger berührt habe, da sah ich, das es wesentlich schneller
geht... aber warum nur???

kann mir eventuell jemand helfen???

mfg
KoF
Angehängte Dateien:

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren