www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik ODER Interrupt


Autor: GB (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
morgen zusammen,

ich bräuchte mal ein wenig hilfe.
Und zwar folgendes Problem, ich habe eine 1x12 Tastatur diese möchte ich 
mit einem µC verbinden, und bei jedem Tastendruck soll ein Interrupt 
ausgelöst werden (programm funktioniert soweit).

Mein problem ist nur, irgendetwas stimmt mit der schaltung nicht. 
Prinzip soll sein, 12 Tasten sollen an den µC gehen und ein weiterer Pin 
soll als Interrupt genutzt werden und das am besten nach einem analogen 
ODER Gatter, so dass egal welche der 12 tasten man drückt immer ein 
Interrupt kommt.

Ich habe das ganze schonmal mit Pull Down Widerständen versucht und 
jetzt auch mit Pull Up Widerstände. Mit Pull down geht es NICHT. Mit 
Pull Up geht es teilweise, problem ist da der Interrupt also das 
verodern der 12 tasten auf einen Pin.

Würde mich über ein bisschen hilfe freuen (oder einen schaltplan) ;)

danke

Autor: 6644 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Tataturen sollte man an einem Timer auswerten, nicht an einem Interrupt. 
Wie soll das Entprellen denn gehen ? Nimm einen 10ms Tick und wenn der 
neue Zustand zum 2.mal anliegt ist entprellt.

Autor: ozo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hmm, mir fällt jetzt nur das Stichwort 'prellen' ein.
Aber was genau funktioniert an deiner Schaltung denn nicht?
Und wenn du es unbedingt verodern willst, sollten die Taster nach Vcc 
schalten und die Eingänge des Oder Gatters per pull down auf logisch 0 
gezogfen werden.

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich weiß zwar nicht, was ein analoges ODER Gatter ist (ich kenne nur 
digitale), aber wenn Du unbedingt einen Aufweck-Interrupt bei 
Tastendruck brauchst, dann solltest Du mal über Dioden nachdenken. Ich 
würde den Int. aber nur zum Aufwecken nutzen, das Einlesen und 
Entprellen der Taster geht durch zyklische Abfrage (Timer) bedeutend 
besser.

...

Autor: Michael U. (amiga)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ohne jetzt auf Entprellen, Timer, Interrupt weiter einzugehen:

Tasten gegen GND geschaltet mit PullUp an jeder Taste (oder interner 
PullUp bei AVR)?

Würde ich ein wired OR mit Dioden machen. Von jeder Taste eine Diode mit 
Anode am INT-Pin und Kathode an Taste. INT mit PullUp und fertig.

Gruß aus Berlin
Michael

Autor: Fabian B. (fabs)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du schaltest alle Tastaturpins über Dioden auf den Interruptpin.
Ich vermute mal du hast an jedem Pin der zu einer Taste geht einen 
Pull-Up und am Int-Pin auch. Die Pins sind dann Low-aktiv. Wenn du jetzt 
von jedem Tasten-Pin eine Diode zum Int-Pin legst wird dieser mit nach 
low gezogen wenn eine Taste gedrückt wird, die Tasten können sich aber 
nicht gegenseitig beinflussen.
Wie rum die Diode muss kannste jetzt mal überlegen ;-)

Gruß
Fabian

Autor: GB (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
erstmal vielen dank für die hilfe, also es liegt def. nicht am IRQ / 
Timer etc. weil das geht schon, das habe ich getestet!

Habe jetzt nochmal ein schaltplan angehängt, vllt. verdeutlich sich es 
dadurch etwas...

Autor: Andreas K. (a-k)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jau, jetzt ist es deutlicher: Anders herum funktionieren die Dioden 
besser. In deiner Variante passiert erst etwas, wenn du alle 12 Taster 
gleichzeitig drückst (UND Funktion statt ODER Funktion, wobei du hier 
den an GND angeschlossenen Tastern zu dank in invertierter Logik 
arbeitest - De Morgan lässt grüssen).

Allerdings erschliesst sich mir nicht, was der Teil links von den Dioden 
eigentlich werden sollte. Widerstand an 3,3V und Signal an Pin wäre ok, 
aber so? Und was stellen diese dekorativen Fragezeichen dar?

Autor: Andreas K. (a-k)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Apropos: Wenn dein unbekannt gebliebener µC einen Pin-Change Interrupt 
kennt, kann der Zirkus mit den Dioden ganz entfallen.

Autor: GB (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ andreas,

es ist ein LPC 2124

also, muss ich die dioden dann nur umdrehen? und die den linken teil 
wegnehmen und dann die dann umgedrehten dioden auf einen zusammenfassen 
und dann direkt zum pin?

also ich ich habe das schonmal OHNE den dioden gemacht, nur das nicht so 
funktioniert...

Autor: Andreas K. (a-k)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
GB wrote:

> also, muss ich die dioden dann nur umdrehen? und die den linken teil
> wegnehmen und dann die dann umgedrehten dioden auf einen zusammenfassen
> und dann direkt zum pin?

Ja, fast. Dieser Pin braucht dann noch einen Pullup-Widerstand.

Autor: Michael U. (amiga)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

naja, ohne Dioden sind ja auch alle Leitungen, die zu den 12 Pins gehen, 
direkt verbunden, was also soll da noch funktionieren?

PS: Stromkreise sind doch eigentlich garnicht so schwer. Die Wege bei 
gedrückten oder nicht gedrückten Taster reinzumalen, wohl auch nicht. 
Die jeweiligen Spannungen abzuschätzen, die an den Pins dann auftreten 
und ob die passen, ist doch eigentlich auch nicht unlösbar?
Auch an µC ist eine Spannung die Differenz zwischen 2 Punkten und Strom 
fließt nur, wenn eine Spannung vorhanden ist und ein Stromkreis 
geschlossen ist.

Gruß aus Berlin
Michael

Autor: GB (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
erstmal vielen dank für die hilfe, nur von meinen reinen logik her, 
würde ich sagen das es SO wie ich es jetzt angehängt habe logisch 
richtig? oder? weil am IRQ Pin liegen ja auch 3,3 V an ...

Autor: GB (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
@ andreas,

oder meinst du das so?!

Autor: die ??? (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Fast, so drückst du einmal die Taste und die Diode ist hin. 
Vorwiderstand!

Autor: die ??? (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Fast, so drückst du einmal die Taste und die Diode ist hin.

...bezog sich auf die Schaltung von 11:30 Uhr.

Autor: Michael U. (amiga)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

zuerst zur 2. Schaltung:
Taste nicht gedrückt -> +3,3V über Widerstand an Kathode der Diode und 
Anode über Widerstand an GND -> Diode ist gesperrt, INT liegt über 
Widerstand an GND -> L Pegel.

Taste gedrückt -> Kathode liegt über Taste an GND, Anode wie oben, also 
beide  Seiten GND -> INT wie oben, passiert also nichts...

Zur 1. Schaltung:
3,3V an INT -> H Pegel, Diode 3,3V an Anode, 3,3V über Widerstand an 
Kathode.
Taste gedrückt -> Kathode über Taste an GND, Anode an 3,3V -> wenn sich 
die Rauchwolken verzogen haben, weil Diode oder Stromversorgung 
aufgegeben haben, fällt Dir vielleicht der fehlende Widerstand zu den 
3,3V auf?

Ist es wirklich so schwer? ;-)

Gruß aus Berlin
Michael

Autor: Michael U. (amiga)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

@ die ???: Du warst schneller, es verwirrt mich trotzdem immer, wie 
jemand programmiert (setzt ja ein gewissen logisches Denken voraus, wenn 
man nicht nur Copy&Paste macht) und selbiges bei Strom&Spannung dann 
scheinbar völlig fehlt.

Gruß aus Berlin
Michael

Autor: die ??? (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Michael U. wrote:
> Du warst schneller, es verwirrt mich trotzdem immer, wie
> jemand programmiert (setzt ja ein gewissen logisches Denken voraus, wenn
> man nicht nur Copy&Paste macht) und selbiges bei Strom&Spannung dann
> scheinbar völlig fehlt.

Anderenfalls bräuchte es dieses Forum nicht. ;^)  Und aus Fehlern lernt 
man (hoffentlich).



Ebenfalls Grüße aus Berlin

Autor: GB (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ok - danke werd es morgen mal ausprobieren, thx ;)

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Anderenfalls bräuchte es dieses Forum nicht. ;^)  Und aus Fehlern lernt
> man (hoffentlich).

Ich glaube kaum, dass aus diesem unsystematischen Herumgeeiere jemand 
etwas lernen kann. Denn es kommt ja nicht nur darauf an, dass etwas 
(nicht) funktioniert, sondern vor allem auch warum es (nicht) 
funktioniert.

Und die Aussage:

> ok - danke werd es morgen mal ausprobieren, thx ;)

suggeriert mir, dass absolut nix verstanden wurde.

...

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.