Ich verwende die I2C Bib von Peter Fleury.Code:#ifndef F_CPU #define F_CPU 8000000UL #endif #include <avr/io.h> #include <avr/interrupt.h> ... int main(void) { //Initialisierung init_USART(); init_timer0(); i2c_init(); sei(); setup_adxl345(); //setup_itg3200(); while(1) { } } void setup_adxl345() { i2c_start(ADXL345_ADRESS+I2C_WRITE); //I2C Startsequenz + Write i2c_write(DATA_FORMAT); //0x01 (+/- 4 g) in Register DATA_FORMAT i2c_write(0x01); i2c_write(POWER_CTL); //0x08 (Measurement Mode) in Register POWER_CTL i2c_write(0x08); }
Wenn ich setup_adxl345(); auskommentiere, dann bleiben die LED's aus.
Er bleibt in der i2c_start Routine hängen:
Fehler auf dem Sensorboard (Robo Bee 6 DOF) kann ich eigentlich ausschließen, hat 2k2 Pullups onboard.Code:unsigned char i2c_start(unsigned char address) { uint8_t twst; // send START condition TWCR = (1<<TWINT) | (1<<TWSTA) | (1<<TWEN); sendUSART("2"); // wait until transmission completed while(!(TWCR & (1<<TWINT))); -> Hier bleibt er stehen






Zitieren


Lesezeichen