PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Signalweiche mit Avr- jemand eine idee??



spass-basti
15.04.2004, 13:35
Hi ich brauche eine signalweiche die folgendes bewerkstelligt:
1) 2 eingänge ein ausgang,

2)wenn der eine eingang betätigt wird wird der andere für eine bestimmte zeit abgeschalten

3) das signal am ausgang kann ruhig eine halbe sekunde verzögert sein, es darf aber nicht phasenverschoben ausgegeben werdne

ich versuche das programm mit bascom zu programmieren, aber es scheitert glaub ich an der timer-funktion irgendwie. hat jemand schonmal was ähnliches gemacht? oder eine idee??

15.04.2004, 13:51
Klingt etwas verzwickt. Kannst du näher beschreiben was das werden soll?

spass-basti
15.04.2004, 16:13
Also. folgendes szenario:

ein gerät xy hat einen eingang für ein digitales signal, welches aber nur ab und zu und kurz anliegt (ähnlich fernbedienung).
Zwei quellen sollen verwendet werden. damit sie sich nicht gegenseitug das signal wegnehmen, soll eine quelle einfach abgeschalten werden (eingang wird ignoriert). das verloren gegangene signal spielt dann keine rolle! werden beide signale so vermischt kann es evtl. zum absturz des gerätes führen.

das signal ist ein ttl pegel-signal!


Folgende überlegung hatte ich zuerst: zwei und glieder nehmen, und die ausgänge von den & in ein oder einführen (signalmischen im oder) liegt ein signal an, wird das high von dem anderen eingang (und) weggenommen, und somit der eingang ignoriert. dann habe ich aber 3 ic's: den µ, den mit den unds drin und den mit den oderverknüpfungen..
es muss doch softwaretechn. zu lösen sein, oder???

Kjion
15.04.2004, 18:19
Es kommt vermutlich darauf an wie "schnell" dein Signal ist. Wenn der Controller es einlesen und wieder ausgeben kann ohne das das Signal verzehrt oder verfälscht wird ist relativ einfach möglich.
Du wartest bis dein Signal kommt. Dann aktivierst du einen Timer und deaktivierts den anderen Kanal. Wenn es einen Timerüberlauf gibt ( müsstest nur noch einstellen wann das passieren soll ) werden wieder beide Kanäle aktiviert...

MfG Kjion

Frank
15.04.2004, 18:32
Also irgendwie kann ich dem Problem nicht folgen. Vielleicht solltest du doch etwas genauer sagen ws du machen willst. Warum speißt du die Signale nicht an unterschiedlichen Ports ein. Dann berücksichtigst du per SOftware einfach das Signal das zuerst ankommt, falls du nicht genügend Rechenleistung für beide Signale hast.

nikolaus10
15.04.2004, 20:07
Na ja, vielleicht geht es ja mit einem Relais :-)
Und wenn schon mit Halbleitern dann 2 XOR Gatter
MFG

Manf
15.04.2004, 20:15
Noch ein kleiner Vorschlag in die gleiche Richtung wie Relais:
Analogschalter MC4016.
Manfred

spass-basti
16.04.2004, 08:10
das problem ist, das wenn ich zb am eingang 1 ein signal habe, der zweite eingang für ca. 1.5sec komplett ignoriert werden soll, und umgedreht, je nachdem welcher eingang zuerst betätigt wird. es ist ein gepulstes signal, so max 500khz (impulsdauer schwankt, je nach gesendetem befehl) das dürfte nicht zu viel sein, denke ich

Manf
16.04.2004, 09:06
Wie war das jetzt noch:eine Lösung mit 3 ICs ist nicht erlaubt, es soll softwaretechnisch sein, und es soll ein 500kHz Signal so schnell erkannt werden, daß ein Umschalter betätigt wird, bevor 2 Signale inkonsistent werden, (also innerhalb des ersten bits, in 2us).

Was soll die Weiche denn sonst noch machen?, da gab es eine Bemerkung mit einer Verzögerung von bis zu einer halben Sekunde. Und keine erlaubte Phasenverschiebung.

Das klingt ein bißchen wie ein Switch, der Signal puffert und multiplext, 500kHz bis eine halbe Sekunde, also 250kbit Puffer. Ohne Phasenverschiebung ist es also ein synchrones System? Aber wieso max. 500kHz? ist die Taktrate von der Quelle abhängig? Dann gibt es keinen zentralen Takt und man sollte noch mal über die Phasenverschiebung sprechen.

In der letzen Meldung heißt es für ca. 1,5 sec komplett ignoriert, wozu dann die Verzögerung? Andererseits scheint festzustehen, daß das Signal, das zuerst kommt nur maximal 1,5 sec dauert.

Könntest Du die Anforderungen noch ein bischen sortieren und den Begriff "Weiche" mit vorsicht einsetzten, es könnte auch sein, daß das eine ziemlich harte ist :-s .
Manfred

spass-basti
16.04.2004, 10:39
Also ich meinte eine verzögerung von bis zu 0.5 sec wären KEIN PROBLEM. es ist keine bedingung!!

Folgendes szenario: du steuerst ein gerät von zwei plätzen gleichzeitig (zwei identische steuergeräte sind vorhanden) nun werden aber beide selten gleichzeitig bedient. aber es kann halt passieren. um dies auszuschließen, möchte ich das bei betätigung an steuergerät 1 das zweite steuergerät für ca. 1-2 sekunden einfach ignoriert wird. das gleiche gilt auch umgedreht.

wäre es ein durchgängiges hi oder low signal wäre es kein problem, aber da es impulse sind komme ich mit einfachen logischen verknüpfungen nicht weiter, weil was nützt es mir, den zu blockierenden eingang mit den selben impulsen ein und auszuschalten, die ich auf dem anderen kanal rein gebe. da kommt bei gleichzeitigem betätigen noch grösserer salat raus..

spass-basti
16.04.2004, 10:40
und das signal soll i mmer 1zu1 (impulsfolge) durchgegeben werden. am liebesten wärs mir schon ohne pufferung!

Manf
16.04.2004, 11:14
Früher hat man Schaltungen, die mit einem Impuls getriggert werden und dann für eine einstellbare Zeit den Zustand beibehalten "Monoflop" genannt.
Wenn man als so eine Schaltung, mit einem Tiefpass und einem Gatter (usw.) pro Kanal in HW aufbaut, die können schnell genug reagieren und leicht eine Sekunde den anderen Kanal sperren. Wäre das eine Lösung, oder ist Softwareeinsatz zwingend? Bei SW wird es mit der Reaktionszeit vielleicht etws kritisch.
Manfred

God
18.04.2004, 16:25
Ähm, ich denk ihr denkt alle zu kompliziert, oder ich zu einfach :cheesy: :cheesy:
Du hast also zwei signale die über je eine Leitung gehen oder?
Jetzt schliesst du die Leitungen beide an jeweils einen Interrupt-Pin vom MC an. Wenn jetzt ein Impuls von Leitung 1 gesendet wird, wird Interrupt 1 aufgerufen, wo denn all das was du zum einlesen und ausgeben brauchst. Am Ende machst du dann vielleicht noch ein "wait 2" oda so hin. Mit der Leitung zwei dann genau so.

Der Trick daran liecht, wenn ein Interrupt ausgeführt wird kann kein anderer ausgeführt werden (oder?!)

Was haltet ihr davon? Oder denk ich hier falsch?


mfg God

spass-basti
19.04.2004, 08:14
mmh ja blöd, das klingt logisch! muss ich mal gucken. hab am wochenende was mit zwei ne555 gebaut, nem oder und zwei und. geht, aber der aufwand ist zu gross. falls ich dazu kommen sollte, zehn oder zwanzig stück davon zu bauen, wirds ekelig :-) deshalb wollte ich die µ-com lösung.

herrma
23.04.2007, 16:21
Früher hat man Schaltungen, die mit einem Impuls getriggert werden und dann für eine einstellbare Zeit den Zustand beibehalten "Monoflop" genannt.

Unter dem Namen sind mir solche Schaltungen auch bekannt. Wie heißen die denn heute? O:)