Да все правильно говорит om, че тут выделываться
сам чуть ли не каждый день матюгаюсь на макрос squal. Пытаешь переменную объявить squal, получаешь мат от компилятора. Почему не SQUAL, как все остальные PIN_MAX и т.д.
Но все это не важно.
Я вот сделал что (без хорошего результата, к сожалению).
-Создал переменную FR_DELAY = CLOCK/FRAME_RATE (на 24МГц при 3кГц получается где-то 330мкс)
-В каждом раунде измерений:
--Пишем в FRAME_GRAB (обнуляем счетчик, запускаем оцифровку нового кадра)
--Читаем из FRAME_GRAB до получения первого нормального пикселя while (!(temp_byte & Pixel_data_valid));
--Ждем FR_DELAY - кадр за эти 350мкс должен полностью оцифроваться, регистры типа МАКС_ПИКС должны обновиться
--Вычитываем шесть стат-регистров
Включаем лазер, делаем все то же самое, выключаем лазер.
Дальше выплевываем оба наборра данных в порт.
Добавлено спустя 2 минуты 46 секунд:setar писал(а):тут вероятнее другое - сенсор не в фокусе
Почему я грешу на лазер - пятно четко очерченное, но тусклое. Я бы визуально сфокусировал лазер, при правильной фокусировке на белой бумаге на точку неприятно смотреть, отсвечивает дай боже.
А потом уже фокусировать объектив матрицы - можно, например фокусировать, выводя на минимальное значение shutter.
Можно и наоборот - вывести shutter в минимум объективом матрицы, а потом фокусировать лазер, пытаясь увести shutter еще ниже.
Добавлено спустя 6 минут 34 секунды:Вот на картинке центральный участок данных - видно, что шум сильный. А он и должен быть сильный. Питание через резистор - собираем все подряд из сети, всякие розовые шумы, вся эта прелесть - вот она, на картинке. А нам надо за одно измерение, желательно не имея никакой предыдущей информации, принять решение. Печалька