Взаимодействие MPU6050 с Arduino uno
Что означает « Летучий bool mpuInterrupt = false; » в программе Arduino, взаимодействующей с MPU6050?
@Soham Prajapati, 👍0
Обсуждение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
- Как сгенерировать аппаратное прерывание в mpu6050 для пробуждения Arduino из режима SLEEP_MODE_PWR_DOWN?
- Проблема прерывания библиотеки MPU6050 Arduino Jeff Rowberg
- Как очистить буфер FIFO на MPU6050?
- Arduino непрерывно считывает значение АЦП с помощью прерывания
- Как правильно использовать volatile переменные в Arduino?
- Понимание того, почему следует избегать «String» и альтернативных решений
- Объяснение кода MPU6050
- Как прервать функцию цикла и перезапустить ее?
какая программа? Я предполагаю, что это флаг, установленный в прерывании, вызванном MPU6050, указывающий на сброс скетча, что прерывание было вызвано., @Juraj