ODER Interrupt

Gast #826641
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
Gast #826645
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.
#826676
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.

...
#826679
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
#826680
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
#826712
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?
Gast #826928
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...
#826993
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
#827502
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
Gast #827507
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
#827725
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

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