- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Ergebnis 1 bis 10 von 24

Thema: Hexacopter

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #14
    Benutzer Stammmitglied
    Registriert seit
    26.06.2008
    Alter
    34
    Beiträge
    59
    hi,

    ok danke, habe nun folgende config:

    Code:
            MPU6050_writeByte(&TWIE, MPU6050_RA_PWR_MGMT_1, (MPU6050_CLOCK_PLL_XGYRO));        
        MPU6050_writeByte(&TWIE, MPU6050_RA_CONFIG, (MPU6050_DLPF_BW_42 | MPU6050_EXT_SYNC_DISABLED));    
        MPU6050_writeByte(&TWIE, MPU6050_RA_SMPLRT_DIV, 4);
        MPU6050_writeByte(&TWIE, MPU6050_RA_GYRO_CONFIG, (MPU6050_GYRO_FS_500));
        MPU6050_writeByte(&TWIE, MPU6050_RA_ACCEL_CONFIG, (MPU6050_ACCEL_FS_4));
    Powermanagement: Clock: X-Axen Gyro
    Config: DLPF_CFG:3, EXT_SYNC disabled
    SampleRate: 1000/5 -> 200hz
    Gyro: +-500°/s
    Acc: +-4g

    [...zeg wieder weg, ist alt...]
    //UPDATE 10:30Uhr:
    Ich vermute es sind die ACK/NACK/STOP-Bedingungen, die die Fehler verursachen.

    Code:
    void MPU6050_writeByte(TWI_t *twi, uint8_t regAdress, uint8_t data){
        Send_Address(twi, MPU6050_ADDR, 0);
        delay_ms(10);
        twi->MASTER.DATA = regAdress;
        while(!(twi->MASTER.STATUS&TWI_MASTER_WIF_bm));
        
        delay_ms(10);
        twi->MASTER.DATA = data;
        while(!(twi->MASTER.STATUS&TWI_MASTER_WIF_bm));
        
        delay_ms(10);
        twi->MASTER.CTRLC = TWI_MASTER_CMD_STOP_gc;
        delay_ms(10);
    }
    
    
    uint8_t MPU6050_readSequence(TWI_t *twi, uint8_t regAdress)
    {
    
    
        uint8_t readData;
        Send_Address(twi, MPU6050_ADDR, 0);
    
    
        delay_ms(10);
        twi->MASTER.DATA = regAdress;
        while(!(twi->MASTER.STATUS&TWI_MASTER_WIF_bm));
    
    
        delay_ms(10);
        Send_Address(twi, MPU6050_ADDR, 1);
        delay_ms(20);
    
    
        readData = twi->MASTER.DATA;
    //    while(!(twi->MASTER.STATUS&TWI_MASTER_RIF_bm));
        
        twi->MASTER.CTRLC = TWI_MASTER_CMD_STOP_gc;
        delay_ms(10);
        return readData;
    }
    Die initialisierung mit mehrfachem writeByte läuft nun durch, anschließend kann er einmal einen wert auslesen. Beim nächsten mal bleibt er beim senden der Adresse, also in der ersten Zeile hängen. Es kommt wohl kein ack vom MPU, da dieser noch auf etwas wartet. Was genau das ist weis ich aber nicht...


    //UPDATE 23:13Uhr
    UUUND der TWI läuft
    Geändert von BurY (06.06.2013 um 19:13 Uhr)

Ähnliche Themen

  1. Willas Shrediquette Tricopter / Quadrocopter / Hexacopter
    Von Willa im Forum Vorstellungen+Bilder von fertigen Projekten/Bots
    Antworten: 3541
    Letzter Beitrag: 03.08.2014, 19:27
  2. Gyroskop und GPS für Hexacopter
    Von Murmele im Forum Sensoren / Sensorik
    Antworten: 10
    Letzter Beitrag: 22.07.2012, 21:04

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Labornetzteil AliExpress