Hier etwas neues.
Ich lasse erst nach Aufforderung senden.
Die Werte sehen auf meinem Display schon gut aus.

nur wenn der negative Wert zum ositiven Wert umschlägt ist er plötzlich sehr groß, kippe ich die Platine weiter sieht es wieder besser aus.

Mache ich da noch was mit den zusammengeführten einzelstrings was falsch?
Es soll einen complement Integer ergeben.

Hier mein Code:
Code:
$regfile = "m168def.dat"
$crystal = 18432000
$baud = 115200
$hwstack = 32                                               ' default use 32 for the hardware stack
$swstack = 10                                               ' default use 10 for the SW stack
$framesize = 40                                             ' default use 40 for the frame space
 Dim Z As Byte
 Dim I As Byte

Dim Empfang As String * 14

Dim Nick As Integer
Dim Nicka As String * 1
Dim Nickb As String * 1

Dim Roll As Integer
Dim Rolla As String * 1
Dim Rollb As String * 1

Dim Gyro As Integer
Dim Gyroa As String * 1
Dim Gyrob As String * 1
'Dim Gyroc As String * 1
'Dim Roll As Integer
'Dim Gyro_z As Integer




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
 Waitms 150
 Printbin 115 ; 110 ; 112 ; 1 ; 0 ; 1 ; 82                  'get data  gesendet 115,110,112,176,1 =data complete
  ' Printbin 115 ; 110 ; 112 ; 3 ; 0 ; 1 ; 84                'GET_ACCEL_BIAS


 If Len(empfang) > 13 Then


   Cls
   Nickb = Mid(empfang , 7 , 1)
   Nicka = Mid(empfang , 8 , 1)
   Nick = Makeint(nicka , Nickb)                            'Aus beiden Strings ein Integer machen
   Locate 1 , 1 : Lcd "Nick= " ; Nick

   Rollb = Mid(empfang , 9 , 1)
   Rolla = Mid(empfang , 10 , 1)
   Roll = Makeint(rolla , Rollb)
   Locate 2 , 1 : Lcd "Roll= " ; Roll

   Gyrob = Mid(empfang , 11 , 1)
   Gyroa = Mid(empfang , 12 , 1)
   Gyro = Makeint(gyroa , Gyrob )
   Locate 3 , 1 : Lcd "Gyro= " ; Gyro




   Empfang = ""
   End If


Loop


Onrxd:
Empfang = Empfang + Chr(udr)
Return


End