diff options
| author | JF <jf@codingfield.com> | 2021-05-21 09:38:38 (GMT) |
|---|---|---|
| committer | Gitea <gitea@fake.local> | 2021-05-21 09:38:38 (GMT) |
| commit | de69905c0647997091d9e385538c96de30be93e6 (patch) | |
| tree | 4775001d808da520c93a7552da1bea80e7714a30 /src/drivers/Cst816s.cpp | |
| parent | a80e782f267cd2424d22da23d809c0c6a8ff8761 (diff) | |
| parent | 7c9513be8a3bf36fda5706cb0fb1bd6232d42ffd (diff) | |
Merge branch 'develop' of JF/PineTime into master
Diffstat (limited to 'src/drivers/Cst816s.cpp')
| -rw-r--r-- | src/drivers/Cst816s.cpp | 19 |
1 files changed, 9 insertions, 10 deletions
diff --git a/src/drivers/Cst816s.cpp b/src/drivers/Cst816s.cpp index e3a37b1..fd9792b 100644 --- a/src/drivers/Cst816s.cpp +++ b/src/drivers/Cst816s.cpp @@ -7,14 +7,14 @@ using namespace Pinetime::Drivers; /* References : - * This implementation is based on this article : https://medium.com/@ly.lee/building-a-rust-driver-for-pinetimes-touch-controller-cbc1a5d5d3e9 - * Touch panel datasheet (weird chinese translation) : https://wiki.pine64.org/images/5/51/CST816S%E6%95%B0%E6%8D%AE%E6%89%8B%E5%86%8CV1.1.en.pdf + * This implementation is based on this article : + * https://medium.com/@ly.lee/building-a-rust-driver-for-pinetimes-touch-controller-cbc1a5d5d3e9 Touch panel datasheet (weird chinese + * translation) : https://wiki.pine64.org/images/5/51/CST816S%E6%95%B0%E6%8D%AE%E6%89%8B%E5%86%8CV1.1.en.pdf * * TODO : we need a complete datasheet and protocol reference! * */ -Cst816S::Cst816S(TwiMaster &twiMaster, uint8_t twiAddress) : twiMaster{twiMaster}, twiAddress{twiAddress} { - +Cst816S::Cst816S(TwiMaster& twiMaster, uint8_t twiAddress) : twiMaster {twiMaster}, twiAddress {twiAddress} { } void Cst816S::Init() { @@ -32,7 +32,7 @@ void Cst816S::Init() { vTaskDelay(5); twiMaster.Read(twiAddress, 0xa7, &dummy, 1); vTaskDelay(5); - + /* [2] EnConLR - Continuous operation can slide around [1] EnConUD - Slide up and down to enable continuous operation @@ -40,23 +40,22 @@ void Cst816S::Init() { */ static constexpr uint8_t motionMask = 0b00000101; twiMaster.Write(twiAddress, 0xEC, &motionMask, 1); - } - Cst816S::TouchInfos Cst816S::GetTouchInfo() { Cst816S::TouchInfos info; auto ret = twiMaster.Read(twiAddress, 0, touchData, sizeof(touchData)); - if(ret != TwiMaster::ErrorCodes::NoError) return {}; + if (ret != TwiMaster::ErrorCodes::NoError) + return {}; auto nbTouchPoints = touchData[2] & 0x0f; uint8_t i = 0; uint8_t pointId = (touchData[touchIdIndex + (touchStep * i)]) >> 4; - if(nbTouchPoints == 0 && pointId == lastTouchId) return info; - + if (nbTouchPoints == 0 && pointId == lastTouchId) + return info; info.isTouch = true; |
