Also ich werde nochmal kurz auf alles eingehen was wir aufgebaut haben...und das Problem das sich ergiebt.

Das RN-Control ist per I2C mit dem RN-Motor verbunden. RS232 hängt am RN-Motor. Und ich programmier per ISP, das Steuerboard. Soweit funktioniert alles. Ich kann programmieren, ich kann das Programm uploaden und einige Befehle schon ausprobieren, mithilfe der taster. Hier das Programm welches ich benutze....

Code:
Declare Sub Motortest()
Declare Sub Lauflicht()
Declare Sub Aendereslaveid()
Declare Sub Motoran()
Declare Function Tastenabfrage() As Byte


$regfile = "m32def.dat"
$framesize = 32
$swstack = 32
$hwstack = 32


Dim I As Integer
Dim N As Integer
Dim Ton As Integer

$crystal = 16000000                                         'Quarzfrequenz
$baud = 9600

Config Adc = Single , Prescaler = Auto                      'Für Tastenabfrage und Spannungsmessung

Config Pina.7 = Input                                       'Für Tastenabfrage
Porta.7 = 1                                                 'Pullup Widerstand ein


Const Ref = 5 / 1023                                        'Für Batteriespannungsberechnung

Const Befehl_maxstrom = 1
Const Befehl_referenzspannung = 2
Const Befehl_stop = 3
Const Befehl_drehrichtung = 4
Const Befehl_schrittanzahl_drehen = 5
Const Befehl_endlos_drehen = 6
Const Befehl_einzigen_schritt = 7
Const Befehl_geschwindigkeit = 8
Const Befehl_ausschalten = 9
Const Befehl_einschalten = 10
Const Befehl_konfiguration_zeigen = 11
Const Befehl_sleep_modus = 12
Const Befehl_motor_selektieren = 13
Const Befehl_schrittmotormodus = 14

Const Motor_links = 0
 Const Motor_rechts = 1

Const I2crnmotorslaveadr = &H56                             'I2C SlaveAdresse von RN-Motor Erweiterung
Const I2crnmotorsreadlaveadr = &H57

Dim Taste As Byte
Dim Volt As Single

Dim I2cdaten(6) As Byte                                     'Array um Befehlsfolge auszunehmen
Dim Lowbyte As Byte
Dim Highbyte As Byte
Dim Schritte As Long
Dim Temp As Byte
Dim Ltemp As Long
Dim Umdrehungen As Single
Dim Fahrstrecke As Word

Dim Geschwindigkeit As Byte





' Für Motorentest
'Ports für linken Motor
Config Pinc.6 = Output                                      'Linker Motor Kanal 1
Config Pinc.7 = Output                                      'Linker Motor Kanal 2
Config Pind.4 = Output                                      'Linker Motor PWM
'Ports für rechten Motor
Config Pinb.0 = Output                                      'Rechter Motor Kanal 1
Config Pinb.1 = Output                                      'Rechter Motor Kanal 2
Config Pind.5 = Output                                      'Rechter Motor PWM
Config Timer1 = Pwm , Pwm = 10 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down
Pwm1a = 0
Pwm1b = 0
Tccr1b = Tccr1b Or &H02                                     'Prescaler = 8

Config Scl = Portc.0                                        'Ports fuer IIC-Bus
Config Sda = Portc.1

Geschwindigkeit = 250
I2cinit

Config Adc = Single , Prescaler = Auto                      'Für Tastenabfrage und Spannungsmessung
Config Pina.7 = Input                                       'Für Tastenabfrage
Porta.7 = 1                                                 'Pullup Widerstand ein


I = 0
Sound Portd.7 , 400 , 450                                   'BEEP
Sound Portd.7 , 400 , 250                                   'BEEP
Sound Portd.7 , 400 , 450                                   'BEEP
Print
Print "**** RN-Control 1.4 *****"
Print "Das neue Experimentier- und Roboterboard"
Print "Weitere passende Zusatzboards bei www.robotikhardware.de"
Print
Do




   Taste = Tastenabfrage()
   If Taste <> 0 Then

      Select Case Taste
         Case 1
            'Motorstrom auf 200mA begrenzen
            I2cdaten(1) = 10                                'Kennung muss bei RN-Motor immer 10 sein
            I2cdaten(2) = Befehl_maxstrom                   'Befehlscode
            I2cdaten(3) = Motor_links                       '1 Parameter
            I2cdaten(4) = 900 / 10                          '2 Parameter (hier Milliampere /10 in diesem Fall wird 200mA eingestellt)
            I2csend I2crnmotorslaveadr , I2cdaten(1) , 5    'Befehl wird gesendet (es müssen immer 5 Bytes gesendet werden, auch wenn weniger Parameter notwendig sind)
            I2cstop

            'Halbschrittmodus
'            I2cdaten(1) = 10                                'Kennung muss bei RN-Motor immer 10 sein
'            I2cdaten(2) = Befehl_schrittmotormodus          'Befehlscode
'            I2cdaten(3) = 1                                 'Beide Motoren Halbschrittmodus
'            I2csend I2crnmotorslaveadr , I2cdaten(1) , 5    'Befehl wird gesendet (es müssen immer 5 Bytes gesendet werden, auch wenn weniger Parameter notwendig sind)


            'Motor einschalten
            I2cdaten(1) = 10                                'Kennung muss bei RN-Motor immer 10 sein
            I2cdaten(2) = Befehl_einschalten                'Befehlscode
            I2cdaten(3) = Motor_links                       '1 Parameter
            I2csend I2crnmotorslaveadr , I2cdaten(1) , 5    'Befehl wird gesendet (es müssen immer 5 Bytes gesendet werden, auch wenn weniger Parameter notwendig sind)

                                   'Taste 1 Zeigt Bateriespannung über RS232 an
         Case 2
            Call Motortest                                  'Taste 2 Motoren beschleunigen und abbremsen
         Case 3
            Call Lauflicht                                  'Einige male Lauflicht über LED´s anzeigen. Am I2C-Port darf in diesem Moment nichts angeschlossen sein


      End Select
      Sound Portd.7 , 400 , 500                             'BEEP
   End If

   Waitms 100
Loop

End




'Diese Unterfunktion fragt die Tastatur am analogen Port ab
Function Tastenabfrage() As Byte
Local Ws As Word

   Tastenabfrage = 0
   Ton = 600
   Start Adc
   Ws = Getadc(7)
  ' Print "Tastenabfrage anpassen!ADC Wert ws=" ; Ws
   If Ws < 500 Then
      Select Case Ws
         Case 400 To 450
            Tastenabfrage = 1
            Ton = 550
         Case 330 To 380
            Tastenabfrage = 2
            Ton = 500
         Case 260 To 305
            Tastenabfrage = 3
            Ton = 450
         Case 180 To 220
            Tastenabfrage = 4
            Ton = 400
         Case 90 To 130
            Tastenabfrage = 5
             Ton = 350
 '        Case Else
'              Print "Tastenabfrage anpassen!ADC Wert ws=" ; Ws
      End Select
      Sound Portd.7 , 400 , Ton                             'BEEP

   End If

'   If Ws < 1023 Then
'      Select Case Ws
'         Case 895 To 910
'            Tastenabfrage = 1
'            Ton = 550
'         Case 870 To 894
'            Tastenabfrage = 2
'            Ton = 500
'         Case 650 To 690
'            Tastenabfrage = 3
'            Ton = 450
'         Case 450 To 480
'            Tastenabfrage = 4
'            Ton = 400
'         Case 220 To 280
'            Tastenabfrage = 5
'            Ton = 350
'      End Select
'      Sound Portd.7 , 400 , Ton                             'BEEP
'    End If

End Function


Sub Aendereslaveid()
   I2cdaten(1) = 10                                         'Kennung muss bei RN-Motor immer 10 sein
   I2cdaten(2) = 15
   I2cdaten(3) = 99                                         '1 Parameter Sicherheitskennung
   I2cdaten(4) = 99                                         '2 Parameter Sicherheitskennung
   I2cdaten(5) = &H58                                       'Hier neue Slave ID Eintragen
   I2csend I2crnmotorslaveadr , I2cdaten(1) , 5             'Befehl wird gesendet (es müssen immer 5 Bytes gesendet werden, auch wenn weniger Parameter notwendig sind)
End Sub


'Testet Motoren und Geschwindigkeitsreglung
Sub Motortest()
   'Linker Motor ein
   Portc.6 = 1                                              'bestimmt Richtung
   Portc.7 = 0                                              'bestimmt Richtung
   Portd.4 = 1                                              'Linker Motor EIN

   'Rechter Motor ein
   Portb.0 = 1                                              'bestimmt Richtung rechter Motor
   Portb.1 = 0                                              'bestimmt Richtung rechter Motor
   Portd.5 = 1                                              'rechter Motor EIN


      Pwm1a = 1000
      Pwm1b = 1000
      Waitms 5000
   Pwm1a = 0                                                'Linker Motor aus
   Pwm1b = 0                                                'rechter Motor aus
End Sub


'Einige male Lauflicht über LED´s anzeigen. Am I2C-Port darf in diesem Moment nichts angeschlossen sein
Sub Lauflicht()

   Config Portc = Output
   Portd = 0
   For N = 1 To 10
      For I = 0 To 7
         Portc.i = 0
         Waitms 100
         Portc.i = 1
      Next I
   Next N
   Config Portc = Input
End Sub
Taste 2, funktioniert. Taste 3 ebenfalls. Bei Taste 1, also der ansteuerung des Motorboards ist im Hyperterminal folgendes zu lesen:

Code:
RN-Motor ST I2C- Firmware 1.6c (c) robotikhardware.de

Referenzspannung = 2.5
SlaveId = Hex 56
Linker Motor Drehrichtung: 0
Linker Motor maximaler Strom : 0.09999996
Linker Motor Geschwindigkeit:5
Linker Motor PWM-Vorgabe im Stillstand:0
Linker Motor aktueller PWM-Wert :0

Rechter Motor Drehrichtung: 0
Rechter Motor maximaler Strom : 0.09999996
Rechter Motor Geschwindigkeit:5
Rechter Motor PWM-Vorgabe im Stillstand:0
Rechter Motor aktueller PWM-Wert :0
Motor:0 Max. Strom:0.899999973 Max-ADC=188
OK
Motor:0 ein
OK
RN-Motor liefert also ein OK zurück. Der Strom mit 900mA müsste ja passen. Was mir sorgen macht ist die Spannung. Heisst "Max-ADC=188" das die Spannung bei 1,88 Volt liegt? Wie kann ich die den ändern? Mit meinem Programm? Jedes Board ist mit einem Akkupack mit 7,3 Volt und 3300mA versehen. Ich will meine Motoren mit mindestens 6 Volt ansteuern. Wo geht das jetzt.

Hoffe ich hab alles erklärt,
danke für die Aufmerksamkeit.
Nimrott