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

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.