summaryrefslogtreecommitdiffhomepage
path: root/tracker-trackhat
diff options
context:
space:
mode:
Diffstat (limited to 'tracker-trackhat')
-rw-r--r--tracker-trackhat/settings.cpp13
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