Forum: Mikrocontroller und Digitale Elektronik SER-Signal zwischenspeichern


von Kurt (Gast)


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

von STK500-Besitzer (Gast)


Lesenswert?

Wie erkennst du denn das 5.Byte?

von Kurt (Gast)


Lesenswert?

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

von Thomas P. (topla)


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

von Kurt (Gast)


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

von robert (Gast)


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.

von Kurt B. (kurt-b)


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

von Kurt B. (kurt-b)


Lesenswert?

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
Noch kein Account? Hier anmelden.