www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Interrupt auf Tastendruck in C


Autor: Holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
habe drei Taster (an RC0,RC1 und RC2 jeweils einen) an einen PIC16f876 
angeschlossen.
Das Signal liegt stängig auf logisch eins und wird durch Tastendruck auf 
logisch null gezogen.

Mit
  if(!Taste1)
  {
   printf("Taste1 wurde gedrückt")
  }
funktioniert die Taste.

Jedoch würde ich mir wünschen, dass mein Programm unterbrochen
wird (sprich ein Interrupt ausgelöst wird), wenn eine Taste gedrückt 
wird.
Also so etwa:

  if (Interrupt_Taste1)
  {
   printf("Taste1 wurde gedrückt")
  }

Doch wie stell ich das an?
Keine große Ahnung von Interrupts!

MFG Holger

Autor: Steffen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mit PORTC funktioniert das nicht, es sei denn du verwendest einen 
zyclischen Timerinterupt.

PORTB4 .. PORTB7 können aber einen sog. on-Change-Interupt auslösen. Die 
Details dazu findest du im Datenblatt unter 4.2.

MfG
Steffen

Autor: Fernando Heitor (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn du wirklich durch ein Tastendruck ein Interrupt auslösen musst, 
dann kannst du nur bestimmte Eingänge dafür verwenden.

An RB0 ist der externe Interrupt vorhanden. Dort hast du die Möglichkeit 
bei steigender oder fallender Flanke ein Interrupt auszulösen.

An RB4-RB7 hast du den "Interrupt-on-Change" (RBIE). Wenn an einen der 4 
Pins ein Signalwechsel passiert, wird ein Interrupt ausgelöst.


Gruß
Fernando

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.