diff options
Diffstat (limited to 'tracker-trackhat')
-rw-r--r-- | tracker-trackhat/settings.cpp | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/tracker-trackhat/settings.cpp b/tracker-trackhat/settings.cpp index d22eb373..1aac6082 100644 --- a/tracker-trackhat/settings.cpp +++ b/tracker-trackhat/settings.cpp @@ -76,16 +76,17 @@ int trackhat_camera::init_regs() constexpr unsigned max_attempts = 5; TH_ErrorCode error; - auto exp = (uint8_t)t.exposure; - auto thres = (uint8_t)t.threshold; + auto exp = (uint8_t)t.exposure; + auto exp2 = (uint8_t)(exp == 0xff ? 0xf0 : 0xff); + auto thres = (uint8_t)t.threshold; auto thres2 = (uint8_t)std::clamp((int)*t.threshold_2, 0, std::max(64, thres-1)); - auto gain = (uint8_t)*t.gain; - auto gain_c = (uint8_t)((gain/0x0f + !!(gain/0x0f)) & 3); - gain %= 0x0f; + auto gain = (uint8_t)((int)*t.gain); + auto gain_c = (uint8_t)(gain/0x10); + gain %= 0x10; gain_c %= 4; const uint8_t regs[][3] = { - { 0x0c, 0x0f, 0xf0 }, // exposure lo + { 0x0c, 0x0f, exp2 }, // exposure lo { 0x0c, 0x10, exp }, // exposure hi { 0x00, 0x0b, 0xff }, // blob area max size { 0x00, 0x0c, 0x03 }, // blob area min size |