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

Thema: UART Interrupt Problem(?)

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    16.02.2006
    Beiträge
    1.113
    Hallo Kampi,
    ich habe so das Gefühl, dass du die Nummer mit den Overlays noch nicht so richtig drin hast.
    Wenn du ein Overlay von Bytes über einen String legst, dann ist einer der entscheidenen Vorteile in Punkto Geschwindigkeit, dass du so etwas
    Eingabe = Eingabe + Chr(Zeichen)
    nicht machen musst. Ebensowenig ein
    Laenge = Len(Eingabe)
    Dein URXC ISR sollte dann so aussehen:

    Code:
    Uart_received:
       Zeichen = Udr
       If Zeichen = 13 Then
          Eingabe_overlay(buffer_laenge) = 13         ´warum machst du das überhaupt?
          Eingabe_overlay(buffer_laenge + 1) = 0                          ´string ende
          Auswertung
       Elseif Zeichen > 13 Then
          Eingabe_overlay(buffer_laenge) = zeichen
          Incr Buffer_laenge
          If Buffer_laenge > 49 Then
               Eingabe_overlay(buffer_laenge + 1) = 0                          ´string ende
               Auswertung
          End If
       End If
    Return
    Wenn du 13 eigentlich gar nicht benötigst würde ich es so verkürzen:
    Code:
    Uart_received:
       Zeichen=UDR
       If Zeichen>13 then
          Eingabe_overlay(buffer_laenge) = zeichen
          Incr Buffer_laenge
       End if
       If Zeichen=13 or Buffer_laenge = 50 then
          Eingabe_overlay(buffer_laenge+1)=0
          Auswertung
       end if
    Return

  2. #2
    Moderator Robotik Einstein Avatar von Kampi
    Registriert seit
    21.11.2009
    Ort
    Monheim, Nordrhein-Westfalen, Germany
    Alter
    35
    Beiträge
    3.501
    Blog-Einträge
    9
    Ah ok.
    Ich ändere es mal um
    Die 13 nutze ich eigtl nur um das Ende einer Übertragung zu signalisieren. Oder hast du da eine besere Idee?
    Schaut ruhig mal auf meiner Homepage vorbei :
    http://kampis-elektroecke.de

    Oder folge mir auf Google+:
    Daniel Kampert

    Es gibt 10 Arten von Menschen. Die einen können Binär, die anderen nicht.

    Gruß
    Daniel

  3. #3
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    16.02.2006
    Beiträge
    1.113
    Wie gesagt, speichere die 13 erst gar nicht ab, dann hast du auch nicht das "?<CR>" Problem.

  4. #4
    Moderator Robotik Einstein Avatar von Kampi
    Registriert seit
    21.11.2009
    Ort
    Monheim, Nordrhein-Westfalen, Germany
    Alter
    35
    Beiträge
    3.501
    Blog-Einträge
    9
    Ah....ja das habe ich ja schon entfernt. Ich nutze die 13 jetzt nur um direkt in die Auswertung zu hüpfen.
    Und ich habe deine Variante gerade ausprobiert....funktioniert auch, nur dass die Variable "Buffer_laenge" dann mit 1 initialisiert werden muss und nicht mit 0 (da Arrays in Bascom ja standardmässig bei 1 anfangen)
    Geändert von Kampi (02.12.2012 um 12:32 Uhr)
    Schaut ruhig mal auf meiner Homepage vorbei :
    http://kampis-elektroecke.de

    Oder folge mir auf Google+:
    Daniel Kampert

    Es gibt 10 Arten von Menschen. Die einen können Binär, die anderen nicht.

    Gruß
    Daniel

Ähnliche Themen

  1. [ERLEDIGT] UART Interrupt unterbrochen?
    Von demmy im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 2
    Letzter Beitrag: 16.02.2012, 13:08
  2. UART per Interrupt
    Von sunshine im Forum C - Programmierung (GCC u.a.)
    Antworten: 2
    Letzter Beitrag: 19.03.2011, 22:56
  3. UART Interrupt
    Von skywalker1979 im Forum PIC Controller
    Antworten: 2
    Letzter Beitrag: 04.06.2008, 06:46
  4. UART mit INTERRUPT in C
    Von Nemesis im Forum C - Programmierung (GCC u.a.)
    Antworten: 10
    Letzter Beitrag: 06.10.2007, 12:37
  5. UART Interrupt
    Von jagdfalke im Forum C - Programmierung (GCC u.a.)
    Antworten: 9
    Letzter Beitrag: 13.12.2005, 19:44

Berechtigungen

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

LiFePO4 Speicher Test