- 3D-Druck Einstieg und Tipps         
Ergebnis 1 bis 7 von 7

Thema: RS232 durchschleifen

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    09.04.2005
    Ort
    89331 Burgau
    Beiträge
    32

    RS232 durchschleifen

    Anzeige

    E-Bike
    Hallo, wer kann mir helfen

    ich empfange verschiedene Strings über die serielle Schnittstelle (COMD.0) und immer wenn ein Zeichenempfang mit beginnend 35 kommt wird es vom attiny2313 bearbeitet (das funktioniert auch)
    es soll aber zusätzlich alles was an
    Open "COMD.0:9600,8,n,2" For Input As #1
    ankommt, an
    Open "COMD.2:9600,8,n,2" For Output As #2
    durchgeschleift werden ohne Überprüfung
    Daten die z.B ankommen können 27 255 64 3 0
    kann mir bitte jemand einen Tip für die Routine geben

    der Sinn darin liegt, von einem vorherigen MC werden Daten ausgesendet, ich möchte aber noch zusätzliche Signale von Tastern mit einschleusen in die RS232



    Code:
    Do                                                          ' Mainloop, hier dreht der Controller seine Runden
      Tempbyte = Waitkey(#1)                                    ' ware auf Zeichenempfang über Soft-UART
      Gosub Zeichenempfang                                      ' gehe zu Zeichenverarbeitung
    
      If Flag = 1 Then                                          ' Protokoll ist komplett ?
         Gosub Protox
         Flag = 0                                               ' Protokollflag wieder rücksetzen
         Zeiger = 1
      Elseif Flag = 2 Then                                      ' Protokoll ist komplett ?
         Gosub Protoy                                           ' Protokoll abarbeiten
         Flag = 0                                               ' Protokollflag wieder rücksetzen
         Zeiger = 1                                             ' zeiger für Speicherung des nächsten eingehenden Zeichens rücksetzen
      End If
    
    Loop
    
    
    Zeichenempfang:
       'Tempbyte = Udr
       Protokoll(zeiger) = Tempbyte                             ' empfangenes Byte in Protokoll ablegen
    
       If Tempbyte = 0 Then                                     ' Protokollende erreicht
          Zeiger = 1                                            ' Protokollzeiger zurücksetzen
       End If
    
       If Protokoll(1) = 27 Then                                ' Wenn Protokollbeginn erkannt
            If Tempbyte = 0 Then                                ' und aktuell empfangenes Byte ist Protokollende
                Flag = 1                                        ' Protokollabarbeitung veranlassen
            End If
            Incr Zeiger                                         ' sonst nächste Speicherstelle für Protokoll auswählen
       Elseif Protokoll(1) = 35 Then                            ' Wenn Protokollbeginn erkannt
            If Tempbyte = 0 Then                                ' und aktuell empfangenes Byte ist Protokollende
                Flag = 2                                        ' Protokollabarbeitung veranlassen
            End If
            Incr Zeiger
       Else
            Zeiger = 1                                          ' Protokoll wieder von vorne beginnen
            Timer0 = 0                                          ' Timer 0 resetten
            Start Timer0                                        ' timer 0 starten
            Enable Timer0                                       ' und Interrupt aktivieren
       End If
    
    
    
    Return
    End

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    01.03.2004
    Ort
    Bielefeld (JA, das gibt es!)
    Alter
    36
    Beiträge
    1.614
    wasn das problem? nachm waitkey einfach nochn print tempbyte, #2 ^^

    Maddin
    Ich will Microsoft wirklich nicht zerstören. Das wird nur ein gänzlich unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds, Entwickler von Linux

  3. #3
    Erfahrener Benutzer Robotik Einstein Avatar von Vitis
    Registriert seit
    06.01.2005
    Ort
    Südpfalz
    Alter
    50
    Beiträge
    2.253
    printbin #2, tempbyte
    Vor den Erfolg haben die Götter den Schweiß gesetzt

  4. #4
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    01.03.2004
    Ort
    Bielefeld (JA, das gibt es!)
    Alter
    36
    Beiträge
    1.614
    hups ^^ geht aber auch mit

    print #2, tempbyte ;

    :P

    lg maddn ^^
    Ich will Microsoft wirklich nicht zerstören. Das wird nur ein gänzlich unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds, Entwickler von Linux

  5. #5
    Benutzer Stammmitglied
    Registriert seit
    09.04.2005
    Ort
    89331 Burgau
    Beiträge
    32
    ich habe jetzt auch schon eine Lösung gefunden, nach ewigem testen und kleiner Hilfe eines Bekannten
    die Hardware UART habe ich wieder verwendet und mit udr = Tempbyte durchgeschleift
    weitere Signale aus dem Tiny habe ich mit printbin versendet

    noch ne Frage

    ich habe jetzt 5 Printbin nacheinander, geht das in einem Befehl auch ?

    aktuelles im Programm:

    printbin 002
    printbin 004
    printbin 006
    printbin 008
    printbin 010

  6. #6
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    01.03.2004
    Ort
    Bielefeld (JA, das gibt es!)
    Alter
    36
    Beiträge
    1.614
    printbin 2 ; 4 ; 6 ; 8 ; 10
    Ich will Microsoft wirklich nicht zerstören. Das wird nur ein gänzlich unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds, Entwickler von Linux

  7. #7
    Benutzer Stammmitglied
    Registriert seit
    09.04.2005
    Ort
    89331 Burgau
    Beiträge
    32
    das ist ja einfach
    in der Bascom Help habe ich es nicht gefunden oder nur nicht gesehen

    nur noch zur Info: ich bin Anfänger XXL, also deshalb die dummen Fragen

    gruß Gerhard

Berechtigungen

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

12V Akku bauen