wip:reading acceleration

This commit is contained in:
Hans Haupt
2024-05-03 09:29:53 +02:00
parent c948b5515b
commit e42a471a33
2 changed files with 9 additions and 6 deletions

View File

@ -17,4 +17,5 @@ Dezibot::Dezibot():multiColorLight(),motionDetection(){
}; };
void Dezibot::begin(void) { void Dezibot::begin(void) {
multiColorLight.begin(); multiColorLight.begin();
motionDetection.begin();
}; };

View File

@ -9,8 +9,7 @@ void MotionDetection::begin(void){
digitalWrite(34,HIGH); digitalWrite(34,HIGH);
handler->begin(36,37,35,34); handler->begin(36,37,35,34);
handler->beginTransaction(SPISettings(frequency,SPI_MSBFIRST,SPI_MODE0));
//handler->beginTransaction(SPISettings(frequency,SPI_MSBFIRST,SPI_MODE0));
digitalWrite(34,LOW); digitalWrite(34,LOW);
// set Accel and Gyroscop to Low Noise // set Accel and Gyroscop to Low Noise
@ -20,7 +19,7 @@ void MotionDetection::begin(void){
delayMicroseconds(200); delayMicroseconds(200);
digitalWrite(34,HIGH); digitalWrite(34,HIGH);
//handler->endTransaction();*/ handler->endTransaction();
}; };
void MotionDetection::end(void){ void MotionDetection::end(void){
handler->beginTransaction(SPISettings(frequency,SPI_MSBFIRST,SPI_MODE0)); handler->beginTransaction(SPISettings(frequency,SPI_MSBFIRST,SPI_MODE0));
@ -35,9 +34,12 @@ IMUResult MotionDetection::getAcceleration(){
IMUResult result; IMUResult result;
handler->beginTransaction(SPISettings(frequency,SPI_MSBFIRST,SPI_MODE0)); handler->beginTransaction(SPISettings(frequency,SPI_MSBFIRST,SPI_MODE0));
digitalWrite(34,LOW); digitalWrite(34,LOW);
result.x = handler->transfer16(cmdRead(ACCEL_DATA_X_HIGH,ACCEL_DATA_X_LOW)); result.x = readRegister(ACCEL_DATA_X_HIGH)<<8;
result.y = handler->transfer16(cmdRead(ACCEL_DATA_Y_HIGH,ACCEL_DATA_Y_LOW)); result.x |= readRegister(ACCEL_DATA_X_LOW);
result.z = handler->transfer16(cmdRead(ACCEL_DATA_Z_HIGH,ACCEL_DATA_Z_LOW)); result.y = readRegister(ACCEL_DATA_Y_HIGH)<<8;
result.y |= readRegister(ACCEL_DATA_Y_LOW);
result.z = readRegister(ACCEL_DATA_Z_HIGH)<<8;
result.z |= readRegister(ACCEL_DATA_Z_LOW);
digitalWrite(34,HIGH); digitalWrite(34,HIGH);
handler->endTransaction(); handler->endTransaction();
return result; return result;