SER-Signal zwischenspeichern

Gast #1436884
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
Gast #1437037
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
#1437052
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
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
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
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

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.