Zwei Interruptquellen über Diode an einen Port schalten

#2992379
Lesenswert?

Hallo Gemeinde

Macht es Sinn, zwei Interruptquellen, über Dioden (ODER verküpft) an 
einen Int Eingang (PD3)am AVR anzuschließen ?
Es soll in der ISR dann nachgeschaut werden, was genau los ist, wenn 
einer der beiden Pegel auf Null geht.
Der Pullup am Int Port ist natürlich einzuschalten.

Wenn das unorthodox ist, würde ich mich über einen Tipp freuen.

Grüße
Torsten
Angehängte Dateien:
#2992394
Lesenswert?

Was soll der Unsinn mit Codierschalter an einen Interrupt?
Wenn Du ihn so schnell drehst, daß ein Interrupt nötig wird, dann fängt 
er durch die Reibungswärme an zu brennen oder die Fliehkraft reißt ihn 
auseinander.

Alle Änderungen langsamer als 1ms kann man bequem pollen. Also alle 
mechanischen Kontakte (und Entprellen nicht vergessen).


Peter
#2992653
Lesenswert?

Peter Dannegger schrieb:
> Was soll der Unsinn mit Codierschalter an einen Interrupt?
> Wenn Du ihn so schnell drehst, daß ein Interrupt nötig wird, dann fängt
> er durch die Reibungswärme an zu brennen oder die Fliehkraft reißt ihn
> auseinander.
>
> Alle Änderungen langsamer als 1ms kann man bequem pollen. Also alle
> mechanischen Kontakte (und Entprellen nicht vergessen).

Mit dem Drehschalter werden nur Betriebsmodi ausgewählt. Eher selten bis 
fast nie. Darum wollte ich nicht 1M-Mal pollen, wenn es eh nichts neues 
gibt.
An diesem Pin ändert sich aber bei jedem Drehen der logische Zustand.
Dann kann ich das Ding am Anfang der ISR in Ruhe ausprellen lassen und 
gucken, was es neues gibt.

Thomas schrieb:
> Nimm auf jeden Fall Schottky-Dioden damit der low-Pegel sicher erkannt
> wird. Bei Vcc 3,3V würden normale Silizium Dioden schon nicht mehr
> funktionieren.

Das ist ein guter Hinweis. Danke!
Gast #2992688
Lesenswert?

Torsten B. schrieb:
> Wenn das unorthodox ist, würde ich mich über einen Tipp freuen.

"Wired-Or" heißt das bei OC/OD-Endstufen. Bei Push-Pull-Endstufen mit 
Dioden hat man den gleichen Effekt.

Torsten B. schrieb:
> Darum wollte ich nicht 1M-Mal pollen, wenn es eh nichts neues
> gibt.

Ein µC hängt gewöhnlich sowieso stundenlang in einer Schleife und guckt, 
ob es irgendetwas neues gibt. Warum soll er dann nicht auch beim 
Kodierschalter vorbei schauen. Über einen Interrupt hält man ihn noch 
eher von anderen Aufgaben ab, insbesondere wenn man ihn dann am Anfang 
der ISR - wie auch immer - ausprellen läßt.
#2992691
Lesenswert?

@  W.S. (Gast)

>> Macht es Sinn,...

Sinn macht man nicht, der ist da oder auch nicht.

>Nö.

>Wenn man auf solche Gedanken kommt, stimmt was mit dem Gesamtkonzept
>nicht.

Doch, das vollkommen normal, um mehrere ICs an eine Interruptleitung 
anzuklemmen. Wenn die INT Ausgänge der ICS Open Drain sind, geht es 
sogar ohne Dioden. AKA Wired AND Verknüpfung.
#2992708
Lesenswert?

Falk Brunner schrieb:
> Doch, das vollkommen normal, um mehrere ICs an eine Interruptleitung
> anzuklemmen.
Wenn der Controller nur einen Interrupteingang hat, geht es ja auch gar 
nicht anders. Dazu braucht man aber noch entsprechend Ports oder einen 
Bus, um die Interruptquelle ausfindig zu machen. Die kann man ja nicht 
raten.

In diesem Falle wäre es aber kein Problem, die beiden Quellen mit den 
beiden Interrupts abzufragen.

Wobei ich allerdins schon lange nicht verstehe, wie man sich noch mit 
dem Atmega8 abmühen kann. Mit dem Atmega88 wäre dieser Thread nämlich 
völlig überflüssig.

mfg.
Gast #2992741
Lesenswert?

Ach, und zum eigentlichen Thema: wenn du schon Dioden zur Verknüpfung 
verwenden willst (oder wired-OR mit OD-Ausgängen), dann würde ich mich 
nicht auf den internen PullUp des ATMEGA verlassen, sondern einen 
externen mit ca. 2k bis 5k spendieren.

Davis schrieb:
> In welchem Text hat G.E.L. diesen Ausdruck verwendet?

Ich habe leider nur von der Tatsache gehört oder gelesen - ohne eine 
Referenz auf einen Text. Aber hier steht was dazu, was meine Aussage 
doch ein wenig relativiert:
http://www.belleslettres.eu/artikel/sinn-machen-make-sense-anglizismus.php

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