Forum: Mikrocontroller und Digitale Elektronik AVR + BASCOM + Softser


von Kurt (Gast)


Lesenswert?

Hallo Leute,

gibt es eine Möglichkeit die Pufferstände der SER-Kanäle auszuhorchen.

BASCOM und Mega32

  Open "COMA.5:2400,8,n,1,puffered(10)" For Input As #2     ' Kanal 
öffnen
  Open "COMA.6:2400,8,n,1,puffered(10)" For Output As #3    ' Kanal 
öffnen

Danke für Infos.


Gruss Kurt

von max power (Gast)


Lesenswert?

>SER-Kanäle
?

von Kurt (Gast)


Lesenswert?

max power schrieb:
>>SER-Kanä

Serielle Kanäle

Ich kann zwar das ev. empfangene Zeichen einlesen, auf Null abfragen, 
jedoch ist dann ungewiss ob es ein echtes Zeichen war oder doch nur ne 
-Null-.

Bei den Hardware-UARTs geht das, da kann man schauen ob mindestens ein 
Zeichen im Puffer vorhanden ist(ischarwaiting), jedoch bei den 
Softwareschnittstellen find ich keinen Befehl.
Am liebsten wär mir die Abfragemöglichkeit wieviel Zeichen noch im 
Puffer vorhanden sind.
Naja, da müsste man halt erst den Befehl kennen.

Gruss  Kurt

von max power (Gast)


Lesenswert?

>Bei den Hardware-UARTs geht das, da kann man schauen ob mindestens ein
>Zeichen im Puffer vorhanden ist
der atmega8 hat nur einen 8bit buffer da passt nur ein zeichen rein.

>jedoch bei den Softwareschnittstellen find ich keinen Befehl.
unter softwareschnittstelle verstehe ich eine schnittstelle die in 
software nachgebildet wird.
also meinst du uart in software oder eine ganz andere schnittstelle.

von Kurt (Gast)


Lesenswert?

Hallo @ max power

>>Bei den Hardware-UARTs geht das, da kann man schauen ob mindestens ein
>
>>Zeichen im Puffer vorhanden ist
>
> der atmega8 hat nur einen 8bit buffer da passt nur ein zeichen rein.
>

Und darum stellt BASCOM Puffer bereit damit keine Zeichen verloren 
gehen.

>
>>jedoch bei den Softwareschnittstellen find ich keinen Befehl.
>
> unter softwareschnittstelle verstehe ich eine schnittstelle die in
> software nachgebildet wird.
> also meinst du uart in software oder eine ganz andere schnittstelle.

Software, durch Software (Compiler) nachgebildete "Hardware"

Der Einrichtbefehl für einen Eingang ist z.B. dieser:

Open "COMA.5:2400,8,n,1,puffered(10)" For Input As #2

Da wird eine rein auf SW basierte Schnittstelle eingerichtet und 
verwaltet.
Und ich weiss halt nicht wie ich die Anzahl der im Puffer eingelegten 
Bytes zu Gesicht bekomme.


Gruss Kurt

von max power (Gast)


Lesenswert?

>Und darum stellt BASCOM Puffer bereit damit keine Zeichen verloren
>gehen.
zwischen 2 bytes die empfangen werden ist normalerweise massig zeit um 
das byte abzuholen zu verarbeiten und sich auf das nächste byte 
vorzubereiten.

>Und ich weiss halt nicht wie ich die Anzahl der im Puffer eingelegten
>Bytes zu Gesicht bekomme.
sorry ich kann die da leider nicht helfen, da braucht es welche die sich 
auch mit bascom auskennen.
in der hilfe/anleitung zu bascom hast du sicherlich schon geschaut?

von Paul Baumann (Gast)


Lesenswert?

Versuche es mal mit BUFSPACE.

Dim Horst as Byte

Horst = BufSpace(1)


Print "MfG Paul"

von Kurt (Gast)


Lesenswert?

Paul Baumann schrieb:
> Versuche es mal mit BUFSPACE.
>

> Dim Horst as Byte
>
> Horst = BufSpace(1)
>

Hab ich versucht, funktioniuert bei den Hardw UARTS, jedoch nicht bei 
den Softis.
Da kommt immer das letzt gesendete Zeichen der Hard-UART

@
Die Beschreibung bin ich schon dreimal rauf und runter durchgerannt.
Werd man beim Bascom-Hersteller vorstellig werfen.


Gruss Kurt

von Düsentrieb (Gast)


Lesenswert?

und sowas..Ischarwaiting(xx) mit channel angabe ?
If Ischarwaiting(2) = 1 Then

von Kurt (Gast)


Lesenswert?

Düsentrieb schrieb:
> und sowas..Ischarwaiting(xx) mit channel angabe ?
>
> If Ischarwaiting(2) = 1 Then

Funktioniert nur bei den HW-UARTs


Gruss 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.