-         

Ergebnis 1 bis 2 von 2

Thema: Seriell senden mit Handshake (Print, CTS, Flow Control, Interrupt) wie?

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    11.09.2005
    Beiträge
    15

    Seriell senden mit Handshake (Print, CTS, Flow Control, Interrupt) wie?

    Anzeige

    Guten Morgen!

    Seriell empfangen mit Handshake geht in Bascom ja prima. (Config Serialin).

    Mein Problem ist die Senderichtung: Ich benötige für ein langsames Display die Möglichkeit, die CTS-Leitung des Displays abzufragen, und den seriellen Datenstrom, wenn CTS=1, zu pausieren.

    Ich habe mir jetzt Config Serialout eingerichtet, in der Hoffnung, in der von der gepufferten Senderoutine benutzen Unterroutine _CheckSendChar die CTS - Leitung abfragen zu können. Leider wird diese Routine scheinbar nicht angesprungen - meine rüde Wartezeit von einer Sekunde wird nicht berücksichtigt ...

    Weiss jemand vielleicht eine Lösung, oder einen anderen Weg, seriell mit Handshake senden zu können?

    Herzliche Grüße
    Snafu

    Code:
    $crystal = 20000000
    $regfile = "m168def.dat"
    
    $baud = 38400
    Config Serialout = Buffered , Size = 254
    Enable Interrupts
    
    Dim Loops As Word
    
    
    Print Chr(170) ; "CG="
    'go to terminal mode
    Print Chr(27) ; "[2J";
    'clear display
    Waitms 100
    
    
    Do
       Print Chr(27) ; "[2J";
       Print "The quick brown Fox jumps over the Lazy dogs back" ; Chr(13);
       Waitms 30
       Print "1234567890";chr(13);
       Print "ÖÄÜßöäü" ; Chr(13);
       Print "012345678901234567890123456789023456789" ; Chr(13);
       Print "---------------------------------------" ; Chr(13);
       Print "012345678901234567890123456789023456789" ; Chr(13);
       Print "---------------------------------------" ; Chr(13);
       Print "012345678901234567890123456789023456789" ; Chr(13);
       Print "---------------------------------------" ; Chr(13);
       Print "012345678901234567890123456789023456789" ; Chr(13);
       Print "---------------------------------------" ; Chr(13);
       Print "012345678901234567890123456789023456789" ; Chr(13);
       Print "---------------------------------------" ; Chr(13);
       Print "012345678901234567890123456789023456789" ; Chr(13);
       Print "---------------------------------------" ; Chr(13);
       Print Loops;
       Incr Loops
       Waitms 1000
    Loop
    
    
    
    
    _checksendchar:
       Wait 1
    reti
    Angehängte Dateien Angehängte Dateien
    Geändert von snafu (19.08.2012 um 15:21 Uhr)

  2. #2
    Neuer Benutzer Öfters hier
    Registriert seit
    11.09.2005
    Beiträge
    15

    Gelöst

    Ich habe einen Tip vom Bascom Programmierer bekommen:

    Man muss einen buffered INPUT definieren, dort gibt es auch einen Pin für CTS. Den Eingang lässt man einfach brach liegen, und dann klappt es mit dem CTS beim Senden.

    Puh! Nicht so extrem logisch, aber jetzt gehts!

    schönen Tag
    snafu.

    Code:
    ystal = 20000000
    $regfile = "m168def.dat"
    
    $baud = 38400
    Config Serialout = Buffered , Size = 100
    Config Serialin = Buffered , Size = 5 , Bytematch = None , Cts = Pind.2 , Rts = Pind.3 , Threshold_full = 3 , Threshold_empty = 2
    
    
    Enable Interrupts
    
    Dim Loops As Word
    
    
    'Config Portd.2 = Input
    'Cts Alias Pind.2
    
    
    Print
    
    Print Chr(170) ; "CG="
    'go to terminal mode
    Print Chr(27) ; "[2J";
    'clear display
    Waitms 100
    
    Print "reset"
    
    Do
    Print Chr(27) ; "[2J";
    Print "The quick brown Fox jumps over the Lazy dogs back" ; Chr(13);
    Waitms 30
    Print "1234567890" ; Chr(13);
    Print "ÖÄÜßöäü" ; Chr(13);
    Print "012345678901234567890123456789023456789" ; Chr(13);
    Print "---------------------------------------" ; Chr(13);
    Print "012345678901234567890123456789023456789" ; Chr(13);
    Print "---------------------------------------" ; Chr(13);
    Print "012345678901234567890123456789023456789" ; Chr(13);
    Print "---------------------------------------" ; Chr(13);
    Print "012345678901234567890123456789023456789" ; Chr(13);
    Print "---------------------------------------" ; Chr(13);
    Print "012345678901234567890123456789023456789" ; Chr(13);
    Print "---------------------------------------" ; Chr(13);
    Print "012345678901234567890123456789023456789" ; Chr(13);
    Print "---------------------------------------" ; Chr(13);
    Print Loops;
    Incr Loops
    
    Waitms 150
    
    Loop

Ähnliche Themen

  1. (VB).NET CF - Seriell Senden Probleme ! (selbstgelöst ^^)
    Von plusminus im Forum PC-, Pocket PC, Tablet PC, Smartphone oder Notebook
    Antworten: 0
    Letzter Beitrag: 11.04.2007, 00:58
  2. FT245 Handshake
    Von masterchiefsupervisor im Forum Elektronik
    Antworten: 0
    Letzter Beitrag: 17.11.2006, 14:14
  3. [ERLEDIGT] 16 Bit seriell senden + Dokumentation gesucht
    Von Dr.Nokill im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 3
    Letzter Beitrag: 19.07.2004, 21:25
  4. C-Control daten seriell senden
    Von WSyS im Forum Controller- und Roboterboards von Conrad.de
    Antworten: 22
    Letzter Beitrag: 17.06.2004, 23:02
  5. [ERLEDIGT] frage an Matthias C-Control daten seriell senden 2
    Von WSyS im Forum Controller- und Roboterboards von Conrad.de
    Antworten: 5
    Letzter Beitrag: 01.01.2004, 11:47

Stichworte

Berechtigungen

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