Restart measurement if cycle fails
This commit is contained in:
@@ -49,7 +49,7 @@ int main(void) {
|
|||||||
usart2->println("I2C1 intialized successful");
|
usart2->println("I2C1 intialized successful");
|
||||||
}
|
}
|
||||||
// init NAU7802
|
// init NAU7802
|
||||||
{
|
|
||||||
std::vector<uint8_t> data = {0x01};
|
std::vector<uint8_t> data = {0x01};
|
||||||
// reset NAU7802
|
// reset NAU7802
|
||||||
checkHalStatus(i2c1->write(0x2A, 0x00, data));
|
checkHalStatus(i2c1->write(0x2A, 0x00, data));
|
||||||
@@ -83,7 +83,6 @@ int main(void) {
|
|||||||
data[0] = 0x30;
|
data[0] = 0x30;
|
||||||
checkHalStatus(i2c1->write(0x2A, 0x15, data));
|
checkHalStatus(i2c1->write(0x2A, 0x15, data));
|
||||||
HAL_Delay(100);
|
HAL_Delay(100);
|
||||||
}
|
|
||||||
|
|
||||||
uint32_t measurement = 0;
|
uint32_t measurement = 0;
|
||||||
auto val = i2c1->read(0x2A, 0x12);
|
auto val = i2c1->read(0x2A, 0x12);
|
||||||
@@ -96,6 +95,18 @@ int main(void) {
|
|||||||
measurement |= val.second;
|
measurement |= val.second;
|
||||||
|
|
||||||
while (1) {
|
while (1) {
|
||||||
|
val = i2c1->read(0x2A, 0x00);
|
||||||
|
if ((val.second & 0x20) != 0x20) {
|
||||||
|
// Measurement cycle not ready, lets wait a bit...
|
||||||
|
usart2->print(".");
|
||||||
|
// restart measurement cycle
|
||||||
|
data[0] = (val.second | 0x10);
|
||||||
|
i2c1->write(0x2A, 0x00, data);
|
||||||
|
HAL_Delay(100);
|
||||||
|
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
measurement = 0;
|
measurement = 0;
|
||||||
val = i2c1->read(0x2A, 0x12);
|
val = i2c1->read(0x2A, 0x12);
|
||||||
measurement |= (val.second << 16);
|
measurement |= (val.second << 16);
|
||||||
@@ -107,8 +118,7 @@ int main(void) {
|
|||||||
measurement |= val.second;
|
measurement |= val.second;
|
||||||
|
|
||||||
usart2->println("Measurement " + std::to_string(measurement) + " counts");
|
usart2->println("Measurement " + std::to_string(measurement) + " counts");
|
||||||
|
HAL_Delay(100);
|
||||||
HAL_Delay(1000);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user