Мне нужна помощь в понимании работы датчиков i2 c.
На данный момент мне удается прочитать значения из TMD2772
(следуя некоторым примерам и пытаясь отправить разные данные и посмотрим, что изменится), но я хотел бы понять идею, лежащую в основе (для того, чтобы иметь возможность управлять следующим сензором, мне потребуется только просмотр таблицы данных.
После написания этого кода я уведомляю, что первым шагом для чтение значений для моего датчика - это настройка некоторых регистров:
- Включить регистр (отсюда я активирую функции датчика)
- RGB C Регистр времени интеграции (я установил) до циклов, но я не понимаю, для чего * 1 036 *. Для меня это только выглядит как сумма 1037 * циклов показаний
- регистр времени ожидания (я настроил некоторое время, но я также не понимаю, для чего - я пытался установить
WEN
от 0 до 0, и мой датчик все еще работает и возвращает значения RGB и Clear) - Регистр постоянства прерываний (я понятия не имею, какие диапазоны указаны, но я полагаю, что они связаны с предыдущими 2 интервалами регистра * 1044) * Очистить пороговые регистры прерывания канала (
0x04
- 0x07
) и Пороговые регистры прерывания сближения (0x08
- 0x0b
) ) - Регистр конфигурации (я не знаю Не понимаю, почему я хотел бы иметь большее время ожидания между показаниями - поэтому я не утверждал этот
WLONG
бит) - Регистр подсчета импульсов приближения (я пытался изменить количество импульсов, но не сделал вижу разницу
- Регистр управления (здесь я изменил
PDATA
и PDRIVE
, но я не понял, что они делают)
Установка всех этих регистров использует некоторые команда , которую я не могу понять, почему я должен всегда отправлять 0b10000000
, когда я устанавливаю некоторые параметры в регистр.
Не могли бы вы объяснить мне (следуя моему коду), что именно я Я делаю и что они имеют в виду под вещами, которые я написал в itali c?