Hallo, ich habe gerade ein Problem, bei dem ich nicht recht weiter kommt. Vielleicht könntet Ihr mir einen kleinen Schubs in die richtige Richtung geben. Um eine Schaltung sicher gegen Fehlbedienung zu machen, möchte ich drei Bustreiber über drei Taster schalten können. Jeder der drei Taster soll gleichberechtigt sein. Jedoch darf immer nur ein Taster einen der Bustreiber freischalten. Die gleichzeitige Betätigung von mehreren Tastern ist unzulässig. Wird nach dem aktivieren eines Bustreibers der Taster für einen anderen Treiberstein betätigt, so müssen alle Treiber, ausser dem zu wählenden, deaktiviert werden. Zudem braucht die Schaltung einen definierten Ausgangszustand. In etwa so: 1=high/gedrückt/aktiv, 0=low/offen/inaktiv Ausgangszustand Taster1: 0 --> Bustreiber1: 0 Taster2: 0 --> Bustreiber2: 0 Taster3: 0 --> Bustreiber3: 0 ein Taster gedrückt: Taster1: 1 --> Bustreiber1: 1 Taster2: 0 --> Bustreiber2: 0 Taster3: 0 --> Bustreiber3: 0 ein anderer Taster gedrückt: Taster1: 0 --> Bustreiber1: 0 Taster2: 1 --> Bustreiber2: 1 Taster3: 0 --> Bustreiber3: 0 wieder ein anderer Taster gedrückt: Taster1: 0 --> Bustreiber1: 0 Taster2: 0 --> Bustreiber2: 0 Taster3: 1 --> Bustreiber3: 1 zwei oder mehr Taster gedrückt: Taster1: 1 --> Bustreiber1: 0 Taster2: 1 --> Bustreiber2: 0 Taster3: 0 --> Bustreiber3: 0 Ich habe versucht, eine solche Logik zunächst aus Einzelgattern zu realisieren. Dann habe ich meine Versuche auf RS- und D-FlipFlops erweitert. Mein Problem besteht nun darin, dass jeder Taster die bisherigen Schaltzustände wieder negieren können muss. Wie würdet Ihr solch eine Aufgabe lösen? Habt Ihr vielleicht ein paar Schlagworte für mich, denn die G*****-Suche war bisher auch nicht sonderlich erfolgreich. Mit Gruß Mike
8 aus 3 Dekoder. Die Bustreiber kommen nur an die Ausgänge, die von einem einzelnen Taster 'angesteuert' werden. Zwischen den Dekoder und die Treiber kommt jeweils ein Flip-Flop, um sich den Zustand zu merken. Wird eine andere Taste gedrückt, so schaltet der entsprechende Decoderausgang * sein eigenes Flip-Flip mittels Set auf 1 * die anderen Flip-Flips mittels deren Reset auf 0. Oder aber ich programmier mir einen kleinen Tiny.
Hallo, vielen Dank für die schnelle Antwort. Ich hatte an einen solchen 3 auf 8 auch schon gedacht, aber nicht weiter verfolgt. Ich werde das gleich mal versuchen. Ja, auch an einen Atmel dachte ich schon. Da auf der Platine jedoch ebenfalls ein sehr empfindlicher Messverstärker liegt, würde ich gerne alles, was irgendwie schwingt, gerne vermeiden. Daher die Überlegungen zu den FlipFlops und Logikgattern. Die erzeugen nur selten Stromspitzen durch Umschaltvorgänge. Die Datenleitungen und die Bustreiber muss ich leider auf der Platine haben. Sie werden aber in die dreckige Ecke verbannt :). Mit Gruß Mike
Mike schrieb: > würde ich gerne > alles, was irgendwie schwingt, gerne vermeiden. Dazu gibts den Pin-Change Interrupt. Der ATtiny13 wacht auf, wenn sich ein Eingang ändert, verarbeitet ihn und geht wieder schlafen. Der CPU-Takt ist dann wieder aus. Peter
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.