www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik SER-Signal zwischenspeichern


Autor: Kurt (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: STK500-Besitzer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie erkennst du denn das 5.Byte?

Autor: Kurt (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Thomas P. (topla)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Kurt (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: robert (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Kurt Bindl (kurt-b)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Kurt Bindl (kurt-b)
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.