Hallo Richard,
habe den befehl eingebunden.
Funktioniert aber leider so nicht.
Vitis hat mir noch den Tipp gegeben ein 2. overlay array einzubinden, um den gefundenen Datensatz komplett im 2. overlay zu zertrennen.
Das habe ich nicht hinbekommen.
Hier mal der neue Code:
Kann den code mal jemand für mich berichtigen?Code:$regfile = "m168def.dat" $crystal = 18432000 $baud = 115200 Dim Z As Byte Dim I As Byte Dim S As String * 24 Dim B(25) As Byte At S Overlay Dim Dsz As Byte Dim Check As Integer Dim Pos As Byte Dim C As Byte Dim D As Byte Dim E As Byte Dim F As Byte 'Dim Pitch As Integer At S(2) + C Overlay 'Dim Roll As Integer At S(2) + D Overlay 'Dim Gyroz As Integer At S(2) + E Overlay 'Dim Chk As Integer At S(2) + F Overlay On Urxc Onrxd 'Interrupt auslösen, wenn volsändiges Zeichen geladen. Enable Urxc Enable Interrupts Config Lcd = 16 * 3 , Chipset = Dogm163v5 Config Lcdbus = 4 'configure lcd screen Config Lcdpin = Pin , Db4 = Portb.0 , Db5 = Portd.7 , Db6 = Portd.6 , Db7 = Portd.5 , E = Portd.2 , Rs = Portd.3 Waitms 100 Initlcd Waitms 100 Display On Cursor Off Noblink Cls Do Zurueck: If Dsz > 23 Then Cls Dsz = 0 Pos = Instr(s , "snp") C = Pos + 6 D = Pos + 8 E = Pos + 10 F = Pos + 12 Dim Pitch As Integer At S(2) + C Overlay Dim Roll As Integer At S(2) + D Overlay Dim Gyroz As Integer At S(2) + E Overlay Gosub Werteschreiben End If Loop Onrxd: Incr Dsz B(dsz) = Udr Return Werteschreiben: If Pos = 0 Then 'wenn pos =0 dann wurde snp nicht gefunden Goto Zurueck End If Cls Locate 1 , 1 : Lcd "Pitch= " ; Pitch Locate 2 , 1 : Lcd "roll= " ; Roll Locate 3 , 1 : Lcd "gyroz= " ; Gyroz 'Lcd "pos= " ; Pos Return End
So gibt mir das Display für alle 3 Werte 28275 aus mit ein paar Störungen zwischendurch.
Dim in der Programmschleife ist ja auch nicht so prickelnd oder?
Ich hätte nicht gedacht, das ich an dieser Sache so hängen bleibe.







Zitieren

Lesezeichen