Habe mir den Acceleration Sensor BMA150 gekauft.
Lässt sich gut mit der SPI Schnittstelle auslesen. Möchte nun mit I2C-Bus auslesen.
Hat jemand ein in C geschriebenes Beispiel?
Habe mir den Acceleration Sensor BMA150 gekauft.
Lässt sich gut mit der SPI Schnittstelle auslesen. Möchte nun mit I2C-Bus auslesen.
Hat jemand ein in C geschriebenes Beispiel?
Das Datenblatt ist doch wirklich ganz ganz einfach für I²C, in etwa so;
Für 1 Byte:
Für alle 6 am Stück:Code:i2c_start(ADRESS+I2C_WRITE); i2c_write(REGISTER_ADDRESS); i2c_stop(); i2c_start(ADRESS+I2C_READ); registerinhalt = i2c_readNak(); i2c_stop();
Auf Seite 37 ist eine Grafik, die alles perfekt und easy zeigt.Code:i2c_start(ADRESS+I2C_WRITE); i2c_write(0); i2c_stop(); i2c_start(ADRESS+I2C_READ); byte 0 = i2c_readAck(); byte 1 = i2c_readAck(); byte 2 = i2c_readAck(); byte 3 = i2c_readAck(); byte 4 = i2c_readAck(); byte 5 = i2c_readNak(); i2c_stop();
Danke für die schnelle Info. Bild hier Werde es damit ausprobieren.
Das Programm soll auf einem PIC16F886 bzw. einem PIC16LF1823 (3.3V) laufen.
Ich habe es mit eigenen Routinen versucht, aber es klappte nicht.
Eigentlich kann es doch nicht schwierig sein, ein kleines Programm für das Auslesen
der Daten x,y und z zu schreiben.
Ich habe noch Anfänger, also, muss man für dein Beispiel
folgensdes einbinden?
//I2C-master-lib von P. Fleury verwenden
#include "i2cmaster.h"
Bin mir nicht sicher aber ich glaube die Lib von Peter Fleury ist für AVR (Atmega, Attiny) nicht für PIC. Es könnte aber sein das es eine Version für PIC gibt.
MfG Hannes
Mein Code bezieht sich auf die Fleury lib, für deinen PIC wirds wohl irgendwas fertiges geben, dementsprechend halt die Namen der stop, read_ack, nak, ... Funktionen anpassen.
Lesezeichen