Add gitignore

This commit is contained in:
Theodor Teslia
2023-05-10 14:34:55 +02:00
parent 726e7f6de0
commit c5eb409d79
3 changed files with 77 additions and 6 deletions

View File

@@ -4,6 +4,7 @@ namespace sta {
MS5607::MS5607(SpiDevice* device, OsrLevel level) {
this->device_ = device;
this->osr_ = level;
this->lastPresVal = -1;
// Reset device on start-up
this->reset();
@@ -11,6 +12,20 @@ namespace sta {
this->readPROM();
}
void MS5607::requestAdcReadout() {
// Get current state of calculation
this->device_->beginTransmission();
this->device_->transfer(MS5607::Operations::D1_CONVERSION + 2*this->osr_);
this->device_->endTransmission();
}
int32_t MS5607::getPressure(int32_t temp) {
}
// DEPRECATED
int32_t MS5607::getPressure() {
// Get pure ADC value from the sensor
uint32_t d1 = readPressure();
@@ -24,6 +39,7 @@ namespace sta {
return calculatePressure(d1, dT);
}
// DON'T USE
uint32_t MS5607::readPressure() {
// Request pressure value conversion
this->device_->beginTransmission();
@@ -32,7 +48,14 @@ namespace sta {
// Wait for ADC to finish
// Could do sth. else and schedule continuation with scheduler in RTOS
delayUs(MS5607::ADC_DELAY);
uint8_t buf[1] = { 0 };
do {
*buf = 0;
uint8_t tx[1] = { 0b11111110 };
this->device_->beginTransmission();
this->device_->transfer(tx, buf, 1);
this->device_->endTransmission();
} while (*buf == 0x00);
// Request readout of ADC value
uint8_t d1Arr[3];
@@ -52,12 +75,14 @@ namespace sta {
// Probably problems with type conversions
// If we used Rust...
int32_t MS5607::calculatePressure(uint32_t d1, int32_t dT) {
int64_t offset = ( ((uint32_t)this->off) << 17) + ( ( ((uint32_t)this->tco) * dT ) >> 6);
int64_t sensitivity = ( ((uint32_t)this->sens) << 16) + ( ( ((uint32_t)this->tcs) * dT ) >> 7);
int64_t offset = ( ((uint64_t)this->off) << 17) + ( ( ((uint64_t)this->tco) * dT ) >> 6);
int64_t sensitivity = ( ((uint64_t)this->sens) << 16) + ( ( ((uint64_t)this->tcs) * dT ) >> 7);
int32_t pres = ( (( ((uint64_t)d1) * sensitivity) >> 21) - offset ) >> 15;
return pres;
}
// NOT RECOMMENDED
// USE TEMP FROM SCA3300 OR STH. ELSE
int32_t MS5607::getTemperature() {
// Get pure ADC value from the sensor
uint32_t d2 = readTemp();
@@ -65,6 +90,7 @@ namespace sta {
return calculateTemperature(d2);
}
// OLD; DON'T USE
uint32_t MS5607::readTemp() {
// Request ADC conversion of temperature
this->device_->beginTransmission();
@@ -73,7 +99,15 @@ namespace sta {
// Wait for ADC to finish
// Could do sth. else and schedule continuation with scheduler in RTOS
delayUs(MS5607::ADC_DELAY);
uint8_t buf[1] = { 0 };
do {
*buf = 0;
uint8_t tx[1] = { 0b11111110 };
this->device_->beginTransmission();
this->device_->transfer(tx, buf, 1);
this->device_->endTransmission();
} while (*buf == 0x00);
// Request ADC readout
uint8_t d2Arr[3];