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);
}
Ich verwende die I2C Bib von Peter Fleury.
Wenn ich setup_adxl345(); auskommentiere, dann bleiben die LED's aus.
Er bleibt in der i2c_start Routine hängen:
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
Fehler auf dem Sensorboard (Robo Bee 6 DOF) kann ich eigentlich ausschließen, hat 2k2 Pullups onboard.
Lesezeichen