Go Down

Topic: [RESOLU] Mecha_QMC5883L : lire un seul axe? (Read 330 times) previous topic - next topic

kammo

Jun 18, 2018, 10:00 am Last Edit: Jun 18, 2018, 04:27 pm by kammo
Bonjour
Cette bibliothèque permet de récupérer les données x,y,z et a.
Sauf que je ne veux que x.
Code: [Select]
#include <Wire.h>
#include <MechaQMC5883.h>
#include <Servo.h>

Servo myservo;

MechaQMC5883 qmc;

void setup() {
  Wire.begin();
  Serial.begin(9600);
  qmc.init();
  myservo.attach(6);
  myservo.write(90);
}

void loop() {
  int x;
  qmc.read(&x);
  Serial.println(x);
  delay(100);
}


Ca me renvoie un message d'erreur:
no matching function for call to 'MechaQMC5883::read(int*)'

Est-ce à dire qu'il faut, comme dans l'exemple qmc.read(&x, &y, &z,&azimuth); récupérer l'ensemble des données (au moins x,y,z)? Du coup il faut au moins 3 int ...

Une idée?
Make it, or make it burn.
carte des membres:
https://drive.google.com/open?id=1QmXJT44QyZHM3SIgDaMo7MGUbBSKAaVD&usp=sharing

fdufnews

Si tu lis la doc ici, tu vois qu'à minima, pour lire le capteur, il faut utiliser
Code: [Select]
qmc.read(&x,&y,&z);
La lecture de MechaQMC5883.h confirme qu'il n'y a pas de méthode avec moins d'arguments.

lesept

Tu dois pouvoir modifier ta version de la bibli en ajoutant dans le fichier cpp une fonction pour toi, genre :
Code: [Select]
void MechaQMC5883::readX(uint16_t* x){
  read(x,y,z);
}
A force d'essayer on finit par réussir... Donc, plus ça rate, plus on a de chances que ça marche (proverbe Sharduinok).

fdufnews

Pourquoi ce prendre la tête, on est quand même assez rarement à 4 octets près. Si tu veux économiser les octets, tu peux très bien faire pointer y et z sur une seule et même variable.

lesept

Tu as raison, mais les koalas aiment bien compliquer les choses simples :)
A force d'essayer on finit par réussir... Donc, plus ça rate, plus on a de chances que ça marche (proverbe Sharduinok).

kammo

Pourquoi ce prendre la tête, on est quand même assez rarement à 4 octets près. Si tu veux économiser les octets, tu peux très bien faire pointer y et z sur une seule et même variable.
Certes!
Mais je parie que le jour où je publie un code comme ça je vais me faire huer ^^
J'ai lu la bibliothèque et je pensais être passé à côté d'une subtilité
Bon alors ok!

Merci vous deux
Make it, or make it burn.
carte des membres:
https://drive.google.com/open?id=1QmXJT44QyZHM3SIgDaMo7MGUbBSKAaVD&usp=sharing

Go Up