Der Anschluß SDO wird beim I2C-Bus zum Eingang und dient der Adressumschaltung
VCC ADXL345 = %0011_1010 I2C Addresse
GND ADXL345 = %1010_0110
=== Softwaremodule ==
' Der i2c-Treiber ist hier im anhang einzufügen. CON 'All the I2C registers for the ADXL345 ' ADXL345 = %0011_1010 acc I2C address maximum bus speed is 100kHz. ADXL345 = %1010_0110 ADXL345_ID = $00 ADXL345_BW_RATE = $2C ADXL345_POWER_CTL = $2D ADXL345_DATA_FORMAT = $31 ADXL345_OUTX_L = $32 ADXL345_OUTX = $33 ADXL345_OUTY_L = $34 ADXL345_OUTY = $35 ADXL345_OUTZ_L = $36 ADXL345_OUTZ = $37 ADXL345_FIFO_CTL = $38 VAR long XA, YA, ZA 'Acc PUB start waitcnt(clkfreq + cnt) 'start-up delay XA := YA := ZA := 0 if ReadLocation(ADXL345, ADXL345_ID) == %1110_0101 WriteLocation(ADXL345, ADXL345_POWER_CTL, %0000_0000) 'Standby mode WriteLocation(ADXL345, ADXL345_POWER_CTL, %0000_1000) 'Measurement mode WriteLocation(ADXL345, ADXL345_DATA_FORMAT, %0000_1000) '±2G ' WriteLocation(ADXL345, ADXL345_DATA_FORMAT, %0000_1001) '±4G ' WriteLocation(ADXL345, ADXL345_DATA_FORMAT, %0000_1010) '±8G ' WriteLocation(ADXL345, ADXL345_DATA_FORMAT, %0000_1011) '±16G WriteLocation(ADXL345, ADXL345_BW_RATE, %0000_1010) '100Hz WriteLocation(ADXL345, ADXL345_POWER_CTL, %0000_1000) WriteLocation(ADXL345, ADXL345_FIFO_CTL, %0000_0000) 'bypass mode ' OK adxl345 else ' nOK PRI adxl45 XA := readLocation16(ADXL345, ADXL345_OUTX_L) XA := (XA>>8 + XA <<8) & $FFFF ' H<>L YA := readLocation16(ADXL345, ADXL345_OUTY_L) YA := (YA>>8 + YA <<8) & $FFFF ' H<>L ZA := readLocation16(ADXL345, ADXL345_OUTZ_L) ZA := (ZA>>8 + ZA <<8) & $FFFF ' H<>L