Bonjour,
J'ai un problème avec les registres du MPU6050. Enfaite j'arrive à trouver à l'aide d'un analyseur logique à quoi correspondent les registres de mon bout de programme soit :
// Si la programmation échoue ne pas tenter d'essayer quelque chose
if (!dmpReady) {
return;
}
// En attente de l'interruption du MPU ou de l'extraction des données
while (!mpuInterrupt && fifoCount < packetSize) {
// ne rien faire
}
// réinitialisé l'interruption et obtenir INT_STATUS bits
mpuInterrupt = false;
mpuIntStatus = mpu.getIntStatus();
// Obtention du FIFO count actuel
fifoCount = mpu.getFIFOCount();
// Véréfication pour l'overflow (ça ne devrait pas arriver à moins que notre code ne soit pas assez efficace)
if ((mpuIntStatus & 0x10) || fifoCount == 1024) {
// reinitialisation alors on pourra continuer de faire des relevés
mpu.resetFIFO();
Serial.println(F("FIFO overflow!"));
//Sinon, vérifier que l'interruption de la donnée du DMP est prête (ça arrive souvent)
} else if (mpuIntStatus & 0x02) {
// Attente d'une longueur de donnée correcte, il devrait y avoir une attente courte
while (fifoCount < packetSize) {
fifoCount = mpu.getFIFOCount();
}
// Lire les paquets de FIFO
mpu.getFIFOBytes(fifoBuffer, packetSize);
// Suivre le FIFO count içi il est > 1 paquet est disponible
// (ça nous laisse immédiatement lire sans attendre d'interruption)
fifoCount -= packetSize;
Cependant sur la photo jointe on peut voir le code hexadécimal 0x2A qui n'est pas présent dans les registres de la documentation. Vous auriez une idée d'ou peut provenir ce code hexadécimal.