Hallo!

Ich bin mit meinem roboter nun soweit, dass ich die entfernungsmessung in angriff nehme...


ich habe einen srf08 an meine rn.control 1.4 angeschlossen.

ich habe folgendes programm geschrieben:
Code:
'###############################################################################
'#                                                                             #
'#            entfernung_1.bas                                                 #
'#                                                                             #
'#            Aufgabe:     Messen von Entfernungen via SRF08                   #
'#                                                                             #
'###############################################################################



$regfile = "m32def.dat"
$crystal = 16000000
$baud = 9600


Const Sf08_adr_0 = &HE0                                     ' I2C Adresse
Const Sf08_c_range = 100                                    ' Reichweite
Const Sf08_c_gain = 1                                       'Empfindlichkeit
Const Sf08_adr_0_read = &HE1

Dim Lsb As Byte
Dim Msb As Byte
Dim Ival As Word


Declare Sub Entfernung()
Declare Function Tastenabfrage() As Byte

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

Do

I2cinit

'###############################################################################
'#    Setzten des Range Wertes                                                 #
'###############################################################################

I2cstart
I2cwbyte Sf08_adr_0
I2cwbyte 2
I2cwbyte Sf08_c_range
I2cstop



'###############################################################################
'#    Setzten des Gain Wertes                                                  #
'###############################################################################

I2cstart
I2cwbyte Sf08_adr_0
I2cwbyte 1
I2cwbyte Sf08_c_gain
I2cstop


'###############################################################################
'#    Messung auslösen                                                         #
'###############################################################################

I2cstart
I2cwbyte Sf08_adr_0
I2cwbyte 0
I2cwbyte 81
Waitms 70


'###############################################################################
'#    Ergebnis abholen                                                         #
'###############################################################################

I2cstart
I2cwbyte Sf08_adr_0
I2cwbyte 2



I2cstart
I2cwbyte Sf08_adr_0_read
I2crbyte Msb , Ack
I2crbyte Lsb , Nack
I2cstop

Ival = Makeint(lsb , Msb)


'###############################################################################
'#    Ergebnis abholen                                                         #
'###############################################################################

Print "Die Entfernung beträgt" ; Ival ; "Meter."

Loop

End
jedoch gibt es mir immer nur 65535 Meter als Entfernung und so groß is mein zimmer nun wirklich nich...



außerdem blinkt die ganze zeit led2. ist das normal?!?

P.S.: Habe grade festgestellt: 1mal wird mir eine entfernung zurückgegeben. direkt nach einem reset und dann kommt die 65535...


MfG JÜrgen