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
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:
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) = 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
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
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
Wie gesagt, speichere die 13 erst gar nicht ab, dann hast du auch nicht das "?<CR>" Problem.
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
Lesezeichen