Взаимодействие MPU6050 с Arduino uno

Что означает « Летучий bool mpuInterrupt = false; » в программе Arduino, взаимодействующей с MPU6050?

, 👍0

Обсуждение

какая программа? Я предполагаю, что это флаг, установленный в прерывании, вызванном MPU6050, указывающий на сброс скетча, что прерывание было вызвано., @Juraj


1 ответ


Лучший ответ:

1

В этом файле i2cdevlib объявлено: https:// github.com/jrowberg/i2cdevlib/blob/master/Arduino/MPU6050/examples/MPU6050_DMP6/MPU6050_DMP6.ino

Это пример «dmp».
Внутри датчика MPU-6050 находится «dmp» и буфер FIFO. «DMP» — это процессор, который собирает данные датчиков, выполняет некоторые вычисления и помещает данные в буфер FIFO. После этого Arduino получает сигнал прерывания.

В Arduino в процедуре прерывания установлен флаг mpuInterrupt. В цикле() этот флаг проверяется и считывается объем данных в буфере FIFO. Когда данных достаточно, они считываются и используются в скетче.

Поскольку переменная «mpuInterrupt» используется в процедуре прерывания и в цикле(), она становится «изменчивой». Это сообщает компилятору, что переменная может измениться в любой момент, поэтому компилятор может учитывать это при создании двоичного кода для цикла().

,

Спасибо за ответ! Я понял. Откуда у тебя все эти знания... какую книгу ты можешь предпочесть?, @Soham Prajapati

@SohamPrajapati Я немного знаю mpu-6050 и i2cdevlib. Установка переменной bool в процедуре обработки прерывания в значение «true» и обработка этого в цикле() — это обычное дело для Arduino., @Jot