доктор Вандершпигель (
wunderwaffe) wrote2021-10-25 06:59 am
![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Entry tags:
Ардуинские библиотеки
Какой охуительный код встретился мне в библиотеке для Troyka от Амперки
Я то думаю, что у меня не работает ни хуя.
Правильный вот такой -
При условии что все принимаемые "сырые" данные будут пронормированы -
иначе слишком большие сырые данные убьют точность - https://wunderwaffe.dreamwidth.org/31760.html
void Compass::readCalibrateMagneticGaussXYZ(float& mx, float& my, float& mz) { int16_t x, y, z; readXYZ(x, y, z); mx = x, my = y, mz = z; _calibrate(mx, my, mz); mx = x / _scalingFactor; my = y / _scalingFactor; mz = z / _scalingFactor; }
Я то думаю, что у меня не работает ни хуя.
Правильный вот такой -
void Compass::readCalibrateMagneticGaussXYZ(float& mx, float& my, float& mz) { int16_t x, y, z; readXYZ(x, y, z); mx=x/_scalingFactor; my=y/_scalingFactor; mz=z/_scalingFactor; _calibrate(mx, my, mz); }
При условии что все принимаемые "сырые" данные будут пронормированы -
float _scalingFactor=6842.0; ... void loop() { ... compass.readXYZ(xx, yy, zz); xx=xx/_scalingFactor; yy=yy/_scalingFactor; zz=zz/_scalingFactor;
иначе слишком большие сырые данные убьют точность - https://wunderwaffe.dreamwidth.org/31760.html