Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - Zum C-Control-I-Forum - Zum C-Control-II-Forum

Re: RS232 variable auswerten Kategorie: Programmierung C (von Peter - 19.06.2013 22:57)
Als Antwort auf Re: RS232 variable auswerten von PeterS - 17.06.2013 18:48

> > > Hallo Peter
> > >
> > > Danke dass du dir die mühe gemacht hast und das Programm reingestellt hast.
> > >
> > > Mit deinem Kommentaren dazu ist alles glas klar. Ich finde die C-control richtig toll... mit all den
> > > Möglichkeiten die Sie einem bietet.
> > >
> > > lg
> > > mave
> >
> > Hallo Mave und PeterS,
> >
> > bin kein Basicer und habe mal zwei Fragen
> > zum obigen Code.
> >
> >
> > If Serial_IRQ_Info(0,RS232_FIFO_RECV)>0 Then
> >   c=Serial_ReadExt(0)                         ' Zeichen aus RS232 holen, 256(0x100)bedeutet es war kein Zeichen im FIFO
> >   If c<256 Then                               ' Wenn Zeichen im FIFO war, dann... verarbeiten des abgeholten Zeichens
> >

> >
> > Kann 'Serial_ReadExt(0)' etwas anderes au�er '256' zurückgeben
> > wenn nichts im Empfangspuffer steht?
> > Oder anders Gefragt.
> > Kann der Ausdruck 'c<256' auch falsch werden?
> >
> >
> >           i=0                          ' Reset des Zählers für Zwischenspeicher
> >           Str_Fill(abc,0,29)           ' Löschen des Zwischenspeichers durch Einschreiben von "0"
> >       End If
> >

> >
> > Was passiert mit dem Arrayindex 'i' wenn
> > kein CR rechtzeitig erkannt wird?
> >
> >
> > GruÃ? Torsten
>
> Hallo Torsten,
>
> Du hast schon recht, wenn man vorher mit Serial_IRQ_Info(0,RS232_FIFO_RECV) prüft
> ob Zeichen im Empfangspuffer sind, dann mu� man bei Serial_ReadExt() nicht extra prüfen.
> Man sollte auch überprüfen ob der Arrayindex zu gro� wird, falls kein CR kommt.
>
> Gruss Peter

Hallo Torsten,Peter,Mave

Asche auf mein Haupt...und vielen Dank für die Hinweise!
Auch wenn der Code nur auf die Schnelle reingeklopft war sollte man natürlich nicht gleich
schlampig werden.

1.) Klar bringt "doppeltes Prüfen" nix. Ist mir sozusagen "reingerutscht" weil ich ursprünglich
beide Möglichkeiten für Mave anführen wollte und dann vergessen habe eine der beiden Varianten
wieder rauszunehmen (bzw. als Kommentar auszuführen).

2.) Und der Arrayindex 'i' sollte natürlich abgefangen werden bevor er überläuft.
Hierzu kann ich nur Geistesabwesenheit als Erklärung anbieten :-)))

Ã?brigens:
WeiÃ? eigentlich jemand eine elegantere und resourcenschonendere Variante als die "Str_Fill-Methode
mit Null" um die Variable 'abc' zu reseten?
Code:
(Str_Fill(abc,0,29)           ' Löschen des Zwischenspeichers durch Einschreiben von "0")

Also in diesem Forum werden die Codes wirklich gelesen. Sehr positv!!!  

Schöne Grü�e
Peter


    Antwort schreiben


Antworten:

Re: RS232 variable auswerten (von Torsten - 20.06.2013 19:50)
    Re: RS232 variable auswerten (von mave - 27.06.2013 22:40)