Was ich versuche zu erreichen ist entweder ein Array von Bytes in einer Funktion zurückzugeben, so dass ich tun kann:Rückgabe oder Übergabe eines Arrays in eine Funktion
byte array[8] = function();
Ich bin mit meiner Selbst erstellte Bibliothek, um Werte mit dem i2c-Bus zu erhalten. Dies ist die Bibliothek:
#ifndef MPULIBRARY_HPP
#define MPULIBRARY_HPP
#include "hwlib.hpp"
namespace mpulibrary{
class mpumanager
{
private:
hwlib::i2c_bus_bit_banged_scl_sda bus;
byte startregister[2] = {0x6B, 0};
byte adress = 0x68;
byte xregister[8] = {0x3B};
byte yregister[8] = {0x3D};
byte zregister[8] = {0x3F};
public:
mpumanager(hwlib::i2c_bus_bit_banged_scl_sda bus):
bus(bus)
{}
void startup(){
bus.write(adress, startregister, 2);
}
byte getXaxis(){
bus.write(adress, xregister, 1);
bus.read(adress, xregister, 2);
return xregister[8];
}
byte getYaxis(){
bus.write(adress, yregister, 1);
bus.read(adress, yregister, 2);
return yregister[8];
}
byte getZaxis(){
bus.write(adress, zregister, 1);
bus.read(adress, zregister, 2);
return zregister[8];
}
};
};
#endif // MPULIBRARY_HPP
Mein anderer Code:
auto manager = mpulibrary::mpumanager(i2c_bus);
for(;;){
manager.startup();
byte ydata[8] = {};
manager.getYaxis(ydata[8]);
byte zdata[8] = {0x3F};
i2c_bus.write(adress, zdata, 1);
i2c_bus.read(adress, zdata, 2);
int16_t yaxis = 0;
int16_t zaxis = 0;
yaxis = (ydata[0] << 8) + ydata[1];
zaxis = (zdata[0] << 8) + zdata[1];
hwlib::cout << "Y: " << yaxis << " Z:" << zaxis << "\n";
hwlib::wait_ms(100);
}
Ich hoffe, dass mir jemand eine Antwort geben kann. Danke im Voraus!