Hallo Leute, hat jemand einen Tip wie das gehen könnte. Serielles Signal 9 ...100 Byte lang, 1200 Baud, soll eingelesen werden. Wärend dem Einlesen Byte 5 ausgewertet, ev. ein Pin geschaltet, und sofort mit der Ausgabe der eingelesenen Bytes begonnen werden. Also Ausgabe bereits wärend der Rest einkommt HW AVR Tiny 2313, Mega 32 ... und BASCOM. Danke für infos Kurt
Es kommt immer ein ganzer Schwung daher, beginnend mit 03 Ausserdem hab ich ein TTL-Signal das vorher gegen Masse geht. Einzig die Länge ist unterschiedlich, der Beginn ist gleich. Kurt
Kleinen Ringpuffer anlegen und die Zeichen einlesen. Wenn Nr. 5 empfangen wurde, halt irgendwas tun und dann eine interruptgesteuerte Ausgabe anschieben. Alternativ die empfangenen Zeichen gleich wieder senden und nur bei Nr. etwas Zusätzliches machen, was und ob es Abhängigkeiten gibt, hast Du ja nicht genau beschrieben. Thomas
Das Ziel ist dass die Ausgabe verzögert wird. Halt zurück, das 5te Byte brauch ich hier eigentlich nicht unbedingt zu kennen. Es läuft so ab: Der Ausgabepin wird von extern gesetzt (ein Modem wird auf Senden geschaltet) Dann folgt nach 80 msec der Block. Nach Ende des Blocks kommt noch ein kurzer Nachlauf. Ich möchte einfach das Vorlaufsignal verlängern, also nicht 80 sondern bis zu 200 msec haben. Also muss ich das Modemschaltsignal auch noch so lange bedienen bis der Block raus ist. Serialin in Bascom kann einen Puffer anlegen. Wenn dieser abfragbar ist kann ich das Ende erkennen, das Modemsignal dann entsprechend wegnehmen. Ischarwaiting müsste das erledigen können. Ob man damit auch die Anzahl der Bytes im Puffer rausholen kann ist mir jetzt nicht bekannt. Mir ist nur noch nicht klar wie ich dass mit den Senden hinkriege. Denn erst müssen Bytes ja vorhanden sein. Es geht warscheinlich sehr einfach. Puffer abfragen (auf die gewünschte Abzahl Bytes, ergibt die gewünschte Verzögerung) und dann einfach ein Byte lesen und gleich weitersenden. Solange bis der Puffer leer ist. Kurt
Ich verstehe ehrlich gesagt Deine Beschreibung nicht. Und meist ist es bei mir so, das wenn ich das Problem nicht beschreibe, ich es auch nicht lösen kann. >Ich möchte einfach das Vorlaufsignal verlängern, also nicht 80 sondern >bis zu 200 msec haben. Äh? Ich dachte das Vorlaufsignal kommt von aussen. Dann kannst Du es ja nicht noch verlängern. Die Mimik macht das Signal eben so lang wie es das eben macht. >Also muss ich das Modemschaltsignal auch noch so lange bedienen bis der >Block raus ist. Vorlaufsignal, Modemschaltsignal? Sind das zwei verschiedene? Was kommt von aussen und was gibst Du aus? Mach ein besten mal eine Skizze/Blockschaltbild und skizziere dann auch den zeitlichen Ablauf.
Hallo Robert, > Ich verstehe ehrlich gesagt Deine Beschreibung nicht. Und meist ist es > bei mir so, das wenn ich das Problem nicht beschreibe, ich es auch nicht > lösen kann. > stimmt, ich werd versuchen die speziellen Begriffe rauszulassen. >>Ich möchte einfach das Vorlaufsignal verlängern, also nicht 80 sondern >>bis zu 200 msec haben. > Äh? Ich dachte das Vorlaufsignal kommt von aussen. Dann kannst Du es ja > nicht noch verlängern. Die Mimik macht das Signal eben so lang wie es > das eben macht. > Es kommt von aussen, ich muss es verlängern. Entkoppelte ODER-Schaltung. Jetztiger Zustand: Das Modemsignal wird gesetzt. Nach 80 msec werden die Daten an das Modem gegeben. Dann wird das Modemsignal wieder weggenommen. Nun will ich dass die Daten erst nach 200 msec dem Modem übergeben werden. Also muss ich die Daten erstmal abfangen, zwischenspeichern, dem Modem verzögert übergeben, das Modem solange gesetzt halten bis alle Daten raus sind. Ist das soweit verständlich? Kurt
Also ich hab inzwischen etwas -rumgespielt-. Im Prinzip läufts schon. Jedoch liefert die Abfrage des Puffers nur 0/1 Naja muss halt bei Bedarf ein Zähler mitlaufen lassen. Kurt
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.