-
        

Ergebnis 1 bis 8 von 8

Thema: Bascom Software Uart Inkey Fehler

  1. #1
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    13.05.2005
    Alter
    26
    Beiträge
    601

    Bascom Software Uart Inkey Fehler

    Anzeige

    Hi,

    ich habe hier grade eine kleine Kriese mit Bascom und zwar benutze ich den
    Soft UART und lese Daten per Inkey() ein, und gebe sie dann per Hard UART
    weiter, die Daten wertden quasi durchgeleitet.

    DAS Problem ist nur wenn ich 0 sende (also nicht das Zeichen "0" ) sondern
    Print Hex (0) das ist nichts, kA wie man das besser beschreiben kann.
    Vill. trifft es, das Erste Zeichen an AscII Tabellen besser....

    Gut Waitkey() funktioniert, wenn man null abschickt kommt auch null an.

    Aber Inkey() gibt den Wert 0 zurück wenn es nichts empfangen hat...
    Was soll Inkey zurückgeben, wenn es Hex(0) empfängt?

    Gibt es da iWas was man machen kann?

    Wenn wir grade dabei sind: Ischarwaiting(#Channel) kann man laut meiner
    Interpreation der Beschreibung auch für Soft Uarts beutzen, warum gibt
    Bascom dann ein Fehler aus, das der Soft UART nicht unterstützt wird?
    Grüße Furtion

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    22.05.2005
    Ort
    12°29´ O, 48°38´ N
    Alter
    48
    Beiträge
    2.731
    Hi,

    ich denke mal das liegt Grundsätzlich an Soft-UART, hier gibts ja keinen Eingangspuffer wie bei Hard-UART, deswegen kann man das nicht abfragen.
    IIRC muss man bei Soft-UART immer aktiv mitlauschen damit nichts verschluckt wird. Mit Waitkey ist man wohl besser dran.

  3. #3
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    13.05.2005
    Alter
    26
    Beiträge
    601
    Hi,

    jo der Soft-Uart mag vill. nicht umbedingt der tollste sein, aber Inkey()
    sollte doch funktionieren, ich denke auch, das das beim HardUart nicht gehen
    wird, denn da liefert Inkey() ja auch 0 zurück wenn er nichts empfangen hat,
    wenn man aber Null sendet, hat es logischerweise auch den Wert 0, d.h.
    es gibt 2 verschiedene Zustände, die den gleichen Wert habe....
    Grüße Furtion

  4. #4
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    22.05.2005
    Ort
    12°29´ O, 48°38´ N
    Alter
    48
    Beiträge
    2.731
    Hi,

    Du kannst bei SoftUART normalerweise nicht warten bis was gekommen ist, Du musst schon immer mitlauschen am UART, deswegen geht da Inkey nicht.
    Waitkey wartet solange bis was kommt, also ist ein 0 auch eine 0.

    Bei Hard-UART, macht das, wie der Name sagt, die Hardware, und wenn ein Byte fertig übertragen ist, kann man checken ob eins da ist, oder eben nicht. Bei Software geht das nicht, da kein Byte kommt wenn man nicht selber die Bytes reinschiebt in die Software vom EingangsPort !

  5. #5
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    13.05.2005
    Alter
    26
    Beiträge
    601
    Hi,

    Was ist, wenn man per Waitkey() wartet, und dann die Daten empfängt,
    das Problem was ja besteht, ist, das die Gegenrichtung (HardUart---> Soft)
    auch noch abgefragt werden will. Könnte man das dann per Timer machen?
    Das der per Ischarwaiting schaut ob ein Zeichen im Hardbuffer liegt und es
    dann holt, oder wieder zu waitkey geht.
    Grüße Furtion

  6. #6
    Erfahrener Benutzer Robotik Einstein Avatar von Vitis
    Registriert seit
    06.01.2005
    Ort
    Südpfalz
    Alter
    43
    Beiträge
    2.240
    oder per interrupt

    on urxc
    Vor den Erfolg haben die Götter den Schweiß gesetzt

  7. #7
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    22.05.2005
    Ort
    12°29´ O, 48°38´ N
    Alter
    48
    Beiträge
    2.731
    Der Hard-UART kann man per Config Serialin einen "asynchronen" Empfang, mit Puffer, beibringen.
    Siehe Bascom-Hilfe.

  8. #8
    Benutzer Stammmitglied
    Registriert seit
    09.09.2004
    Ort
    BitteKeinePrivatenDatenAngeben! Danke!
    Beiträge
    63
    Nur fürs Archiv:

    So kann man auch NULL (&b00000000) am Softwareuart erkennen:



    Code:
    Open "comd.5:2400,8,n,1" For Input As #2
    
    inputbin #2, buffer(1), 25

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •