summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorStanislaw Halik <sthalik@misaki.pl>2021-10-17 15:19:26 +0200
committerStanislaw Halik <sthalik@misaki.pl>2022-03-29 00:04:48 +0200
commit5ea5507327b18ec7f25b0b45e6667982b0a446aa (patch)
tree80f46e9477e0aa943c39896ff0dd138b1cbce6a4
parent5ee257b417f5da0aad0e88b512ea5738c8367d09 (diff)
tracker/trackhat: register work
-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