Hi,
ich möchte einen Ultraschallsensor (SRF10), der über eine
I2C-Schnittstelle Daten liefert, auslesen. Der Code ist schon fertig und
es läuft alles. Ich möchte aber gerne mal verstehen, was da genau
passiert.
Kann mir jemand einmal ganz knapp sagen, was im folgenden Code genau vor
sich geht? Besonders die Funktion Makeint() ist mir noch sehr kryptisch.
1 | I2C_Start()
|
2 | I2C_Write(SlaveIdRead)
|
3 | MSB = I2C_Read_ACK()
|
4 | LSB = I2C_Read_NACK()
|
5 | I2C_Stop()
|
6 |
|
7 | Entfernung = Makeint(LSB , MSB)
|
8 |
|
9 | Return Entfernung
|
10 |
|
11 | End Sub
|
12 |
|
13 | Sub Makeint(A As Byte , B As Byte) As Word
|
14 | Dim tmp As Word
|
15 | tmp = A
|
16 | tmp << 7
|
17 | tmp = tmp + B
|
18 | Return tmp
|
19 | End Sub
|
MfG
Basti