- Akku Tests und Balkonkraftwerk Speicher         
Ergebnis 1 bis 10 von 18

Thema: Inhalt in einem String löschen

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    25.03.2006
    Ort
    Hinsdorf
    Alter
    50
    Beiträge
    381
    Hi for_ro,

    Zitat Zitat von for_ro Beitrag anzeigen
    Ich mag halt lieber die direkte Verarbeitung in der URXC ISR. Dann hast du selber die Kontrolle. Benutzt du Config SerialIn ... dann kannst du erst danach eingreifen.
    Deinen Timer könntest du dabei so lassen wie er ist, nur rufst du die ISR direkt auf, wenn ein Zeichen empfangen wurde.
    wie würde denn solch eine direkte Verarbeitung in der ISR dann aussehen, hättest Du bitte mal ein Beispiel?
    In meinem Programm habe ich auch das Phänomen, dass während eines bestimmten Ablaufes der Kontroller resettet wird und ich weiß nicht warum.

    Danke & Gruß MAT

  2. #2
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    16.02.2006
    Beiträge
    1.113
    Anfangen würde ich z.B. so:

    Code:
    Dim Uart_buffer As String * 100
    Dim Byte_empfangen As Byte
    Dim Buffer_overlay(101) As Byte At Uart_buffer Overlay
    Dim Buffer_pointer As Byte
    
    On Urxc Urxc_isr
    Enable Urxc
    Enable Interrupts
    
    Do
       'deine Hauptschleife
    Loop
    
    End
    
    Urxc_isr:
       If Buffer_pointer < 100 Then Incr Buffer_pointer         'falls zuviele zeichen kommen, ist hier die Bremse
       Byte_empfangen = UDR
       'hier könntest du jetzt einige Checks machen, wie z.B. auf CR/LF oder auch eine Vorauswertung des Empfangs
       'wenn du z.B. das CR/LF gar nicht im Buffer abspeichern willst, dann lässt du den Befehl eben weg und setzt stattdessen nur ein Flag
       'welches du dann in der Hauptschleife auswertest.
       'auf die Art musst du nicht so viel machen, wenn deine Übertragung vollständig ist, sondern verteilst
       'dies auf die relativ langen Pausen zwischen den eingehenden Zeichen
    
       'hier kannst du auch deinen Timer starten um zu überprüfen, ob die Übertragung nicht aus irgendeinem Grund aufgehört hat
    
       Buffer_overlay(buffer_pointer) = Byte_empfangen          'und schließlich das Zeichen im Buffer abspeichern
    Return

Ähnliche Themen

  1. Compact C: String löschen
    Von Fabian E. im Forum Robby RP6
    Antworten: 3
    Letzter Beitrag: 28.05.2010, 06:39
  2. Datenlgger 1000 SD - Anführungszeichen im String löschen?
    Von TobiasBlome im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 2
    Letzter Beitrag: 11.04.2010, 18:56
  3. Aus einem String Daten ausmaskieren
    Von Olli2301 im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 5
    Letzter Beitrag: 13.12.2006, 22:53
  4. String löschen
    Von Murus im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 2
    Letzter Beitrag: 15.01.2006, 17:19
  5. wahllos bits aus einem byte löschen
    Von churchi im Forum C - Programmierung (GCC u.a.)
    Antworten: 6
    Letzter Beitrag: 17.10.2004, 13:11

Berechtigungen

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

Labornetzteil AliExpress