IC für Interrupt Vervielfachung gesucht.

OP #1178717
Lesenswert?

Hallo zusammen,

Ich möchte die Flankenwechsel eines Trackballs (4 Eingänge am AVR werden 
zur Richtungsabfrage benötigt) interruptmässig auf einen 
interrupt-fähigen 5. PIN am AVR legen, da ich nicht genügend externe 
Interrupt fähige Pins frei habe.

Dazu würde ich ein IC oder eine Schaltung benötigen, dessen 
Sprungfunktion wie im beigefügten PDF die 4 Eingänge in einen Ausgang 
umsetzt.

Kann mir bitte jemand einen Hinweis geben, wie man so etwas einfachst 
realisiert, bzw. welches IC diese Anforderung erfüllt ???

Ein NE555 kann man sicher prinzipiell dafür verwenden, aber der hat 
keine 4 Eingänge - oder ?

Vielen Dank im voraus.
Angehängte Dateien:
#1178724
Lesenswert?

@  John Schmitz (student)

>Ich möchte die Flankenwechsel eines Trackballs (4 Eingänge am AVR werden
>zur Richtungsabfrage benötigt) interruptmässig auf einen
>interrupt-fähigen 5. PIN am AVR legen, da ich nicht genügend externe
>Interrupt fähige Pins frei habe.

Ich kenn mich mit Trackballs zwar nicht so aus, aber ich tippe mal, dass 
dort auch zwei Defakto Drehgeber drin sind. Und die wertet man 
anders aus. Warum das so ist steht im Artikel ;-)

MFG
Falk
OP #1178730
Lesenswert?

Hallo Falk,

danke für den Hinweis. Ich nutze den Blackberry Trackball. Dieser funzt 
aber anders - wenn auch recht tricky.

Der Trackball treibt über eine Freilaufvorrichtung 4 unabhängige 
Magneträdchen an, jedes für eine Richtung (x, -x, y, -y).

Und den Polwechsel der Rädchen frage ich über 4 zugehörige Hallgeber ab. 
Deren Ausgänge (Flankenwechsel) möchte auf EINEN Interruptfähigen PIN 
legen.

Danke trotzdem.

Grüsse
Gast #1178742
Lesenswert?

Hi,

die Antwort von Falk fand ich gar nicht so schlecht.

Wie sieht denn Deine Anforderung aus? Im Allgemeinen reicht es aus, wenn 
solche Eingänge gepollt werden, entweder durch die HP-Schleife oder über 
einen Timer-Interrupt.

Ich würd noch etwas Zeit investieren, um die Aufgabe zu analysieren. Die 
Eingänge mußt Du eh alle einzel (durch diesen Sammelinterrupt bedingt) 
abfragen. Da ist ein flottes Pollen nicht ungeschickt und mehr als nur 
eine flüchtige Überlegung wert.

Nix für ungut.
Gast #1178750
Lesenswert?

> OR-Gatter
Bringt nix (die Dioden auch nicht(?)), wenn ich die Anforderung richtig 
verstanden hab (was um die Uhrzeit nicht unbedingt gegeben sein muss :)

Wie wärs mit 74HC123? Da sind zwei monostabile Kippstufen drin, jede mit 
einem High- und Low-Flanken-getriggerten Eingang, also das Signal 
jeweils auf beide Eingänge geben. Was allerdings passiert, wenn bei 
Eingänge die Flanke wechseln, ist nicht beschrieben. Obwohl, wenn man 
A1/B2 und A2/B1 verbindet, könnts klappen. Die Ausgänge musst du halt 
wiederum über Dioden entkoppeln und auf deinen Eingang geben.

Ralf
OP #1178756
Lesenswert?

Leider kenne bin ich nur Maschinenbauer, insofern here Autodidakt, was 
ICs und Logik angeht ...!

Problem ist: Bleibt ein Pol des Magneträdchens auf dem Hallgeber stehen, 
so zieht der Hallgeber auf 0 oder 1. Nur wenn das Rädchen in Bewegung 
ist, wird die Flanke erzeugt - ist ja auch logisch.

Aber heisst auch Dioden helfen mir eher nicht.
OP #1178763
Lesenswert?

was-willst-du wrote:
> Hallo lieber John Schmitz,
>
> gibts ein Argument, daß gegen das Pollen spricht? Das ist doch die
> Lösung ohne viel Bastelkram.

Ja, leider, denn ich steuere mit dem Trackball einen Cursor.

Die Geschwindigkeit (Beschleunigung) mit der ich den Trackball bewege, 
soll den Cursor eine kürzere oder weitere Entfernung über den Bildschirm 
bewegen.

Das lässt sich natürlich ideal über die längeren oder kürzeren 
Delta-Zeiten zwischen zwei Interrupts steuern ...!
OP #1178781
Lesenswert?

was-willst-du wrote:
> Wie wird denn die Zeit zwischen den Interrupts gemessen?
>
> Das geht doch sicher genauso mit Polling. Einfach die Zeit zwischen den
> Zustandsänderungen messen.

Der AVR (2561) des dispay3000 (www.display3000.com) muss noch viele 
andere Funktionen steuern (Grafik Output, WLAN Kommunikation über 
Avisaro, SD-card etc.) Darum würde ich lieber auf Polling verzichten um 
seine Prozessorzeit auf diese Dinge zu konzentrieren. Ausserdem bewege 
ich mich bei Polling in einem diskreten Zeitraster, das nie so fein 
gerastert ist wie ein Trackball, der eevents auslöst und der so 
beliebige Zeitspannen triggern kann.

So abnorm kann meine Anforderung doch gar nicht sein, da gibt's doch 
bestimmt irgendein ein IC. In welcher Familie müsste ich Eurer Meinung 
nach denn suchen ???

Danke!
#1178896
Lesenswert?

@John Schmitz (student)

>ich mich bei Polling in einem diskreten Zeitraster, das nie so fein
>gerastert ist wie ein Trackball, der eevents auslöst und der so
>beliebige Zeitspannen triggern kann.

Und du glaubst ernsthaft, mit deinem naiven Ansatz kannst du die Zeiten 
genau erfassen. . . ?!?
Gast #1178908
Lesenswert?

Also als jemand der Mauscontroller baut kann ich Dir sagen, dass der 
Ansatz mit dem Interrupt nicht funktionieren wird. Und das alleine schon 
desshalb weil bei einer schnellen Bewegung des Trackballs so viele 
Interrupts kommen, dass der Prozessor nichts anderes mehr machen wird 
als Interrupts bearbeiten.

Pollen, nicht basteln.
#1178915
Lesenswert?

John Schmitz wrote:

> So abnorm kann meine Anforderung doch gar nicht sein, da gibt's doch
> bestimmt irgendein ein IC. In welcher Familie müsste ich Eurer Meinung
> nach denn suchen ???

Der ATmega2561 hat 18 Interrupteingänge, wo ist das Problem?

Die Zeiten sind vorbei, wo man irgendwelche Spezial-ICs entwickelt.
Wenn Du so einen IC brauchst, mußt Du ihn Dir selber programmieren, z.B. 
in einen ATtiny13.


Peter
Gast #1178949
Lesenswert?

Eigentlich sollten wir ihn in Ruhe basteln lassen. Wenn er ein Spezial 
IC wünscht soll er es besorgen, programmieren, aus Holz schnitzen oder 
sich einfach denken.

Die Lösungsvorschläge waren üppig, technisch sinnvoll, geradlinig.
Was will man mehr?


Wer heute noch mit Hardware bastelt, wenn er die Aufgabenstellung 
elegant durch Software erledigen kann, hat es nicht anders verdient.

Nix für ungut.
Gast #1178983
Lesenswert?

@ John Schmitz
Wenn du es unbedingt auf deine Art versuchen willst, könntest du evtl. 3 
XOR-Gatter verwenden: je zwei Eingänge (z.B. E1 und E3) ver-X-odern, die 
beiden Ausgänge ebenfalls ver-X-odern und auf steigende und fallende 
Flanken triggern. Ein Problem bekommst du allerdings wenn sich 2 
Eingänge gleichzeitig ändern...
OP #1180104
Lesenswert?

Peter Dannegger wrote:

> Der ATmega2561 hat 18 Interrupteingänge, wo ist das Problem?
>
Alle Oins anderweitig belegt - 1 Interrupt Pin ist noch frei ...!

> Die Zeiten sind vorbei, wo man irgendwelche Spezial-ICs entwickelt.
> Wenn Du so einen IC brauchst, mußt Du ihn Dir selber programmieren, z.B.
> in einen ATtiny13.
>
>
> Peter

Ist mir schon klar, dass man nicht für jedes Problem ein entsprechendes 
IC findet. Wollte aber sichergehen, dass es für diese Aufgabenstellung 
KEIN IC gibt, bevor ich mich an die Arbeit mache. Eine solche 
Vorgehensweise halte ich für logisch und sinnvoll. Und so abnorm ist die 
Aufgabenstellung ja wohl nicht ...!

Danke für die Hilfe!
Grüsse
OP #1180114
Lesenswert?

Guido Körber wrote:
> Also als jemand der Mauscontroller baut kann ich Dir sagen, dass der
> Ansatz mit dem Interrupt nicht funktionieren wird. Und das alleine schon
> desshalb weil bei einer schnellen Bewegung des Trackballs so viele
> Interrupts kommen, dass der Prozessor nichts anderes mehr machen wird
> als Interrupts bearbeiten.
>
> Pollen, nicht basteln.

Ist für mich kein Argument:

Das Oszilloskop zeigt mir Impulsbreiten von ca. 10 ms wenn ich die 
Blackberry Kugel langsam bewege und ca. 1 ms wenn ich die Kugel ganz 
schnell bewege.

Ich sehe nicht, warum hier regelmässiges Polling (in diesem Zeitraster) 
den Prozessor weniger belastet als sporadische Interrupts. Habe auch 
kein Problem, dass während der Trackballbewegung andere Funktionen 
weniger prior behandelt werden.

Aber Du bist der Experte - den Anspruch habe ich nicht.

Wenn ich fertig bin werde ich berichten. Habe auch kein Problem, dir 
Recht zu geben, wenn's mit den Interrupts nicht klappt - versprochen.

Danke und Grüsse
OP #1181557
Lesenswert?

Recht herzlichen Dank Euch allen.

Ich glaub's kaum ... habe mich bislang nur mit den grossen Megas 
auseinandergesetzt ... und habe dabei glatt die ATtinys übersehen.

Die sind ja supereinfach zu gebrauchen - alles drin. Insofern habt ihr 
mir wirklich sehr geholfen, habe gleich 30 bestellt ... Die taugen ja 
für alles und brauchen noch nicht einmal Peripherie ... genial.

Danke noch einmal!

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