Я был бы готов поспорить, что это просто из-за того, что камера переключает режимы назад и вперед между просмотром в реальном времени, фактически выставляя фотографию и возвращаясь к просмотру в реальном времени.
- В режиме живого изображения звучит так, как будто диафрагма останавливается там, где она должна быть.
- Когда вы делаете снимок, изображение в режиме реального времени «выходит», поэтому камера возвращается в нормальное состояние. Это сбрасывает диафрагму до нормального состояния и закрывает затвор.
- Тем не менее, поскольку вы на самом деле делаете снимок, он должен заново установить диафрагму, открыть датчик, а затем снова вернуть камеру к настройкам по умолчанию.
- Наконец, поскольку вы использовали просмотр в реальном времени, он снова запускает просмотр в реальном времени, что откроет затвор и настроит апертуру в соответствии с вашим предварительным просмотром в реальном времени.
В прошлом я занимался программированием базовых встроенных систем, и вы часто сталкиваетесь с ограничениями, которые сложно преодолеть, учитывая природу аппаратного обеспечения, с которым вы работаете (которое обычно очень, очень ограничено). Это довольно распространенное явление. и довольно легко просто использовать базовый конечный автомат и рабочий процесс, чтобы отслеживать, в каком «режиме» находится система, и выполнять действие сброса при переходе между состояниями. В случае с камерой вы должны убедиться, что все установлено обратно в «ноль» или «состояние по умолчанию» перед экспозицией, поэтому логика, которая фактически выполняет экспозицию, работает из известных хороших начальных значений. Требуется больше регистров, больше памяти, больше констант и больше логики для совместного использования «данных о состоянии» между одним «состоянием машины» и другим, когда обычно конечные автоматы должны быть глобально данными без состояния в чистом смысле этого слова.