SER-Signal zwischenspeichern

Gast #1436884
Lesenswert?

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
#1437052
Lesenswert?

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
Gast #1437079
Lesenswert?

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
Gast #1437086
Lesenswert?

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.
#1437119
Lesenswert?

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

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