6#define MPR121_I2CADDR_DEFAULT 0x5A
7#define MPR121_TOUCH_THRESHOLD_DEFAULT 12
8#define MPR121_RELEASE_THRESHOLD_DEFAULT 6
67 config_.
dev_addr, address, 1, data, size, 10);
75 config_.
dev_addr, address, 1, data, size, 10);
88template <
typename Transport>
170 return GetTransportErr();
181 for(uint8_t i = 0; i < 12; i++)
235 SetTransportErr(transport_.ReadDataAtAddress(reg, &buff, 1));
248 transport_.ReadDataAtAddress(reg, (uint8_t *)(&buff), 2));
260 bool stop_required =
true;
261 if((reg ==
MPR121_ECR) || ((0x73 <= reg) && (reg <= 0x7A)))
263 stop_required =
false;
274 transport_.WriteDataAtAddress(
MPR121_ECR, &zero, 1));
277 SetTransportErr(transport_.WriteDataAtAddress(reg, &value, 1));
283 transport_.WriteDataAtAddress(
MPR121_ECR, &ecr_backup, 1));
332 Transport transport_;
333 bool transport_error_;
336 void SetTransportErr(
bool err) { transport_error_ |= err; }
342 transport_error_ =
false;
Result ReadDataAtAddress(uint16_t address, uint16_t mem_address, uint16_t mem_address_size, uint8_t *data, uint16_t data_size, uint32_t timeout)
Result Init(const Config &config)
Result WriteDataAtAddress(uint16_t address, uint16_t mem_address, uint16_t mem_address_size, uint8_t *data, uint16_t data_size, uint32_t timeout)
Device support for MPR121 12x Capacitive Touch Sensor.
Definition mpr121.h:90
void WriteRegister(uint8_t reg, uint8_t value)
Definition mpr121.h:257
Mpr121()
Definition mpr121.h:92
~Mpr121()
Definition mpr121.h:93
uint16_t FilteredData(uint8_t t)
Definition mpr121.h:196
uint8_t ReadRegister8(uint8_t reg)
Definition mpr121.h:232
uint16_t BaselineData(uint8_t t)
Definition mpr121.h:209
void SetThresholds(uint8_t touch, uint8_t release)
Definition mpr121.h:178
Result
Definition mpr121.h:109
@ OK
Definition mpr121.h:110
@ ERR
Definition mpr121.h:111
uint16_t Touched()
Definition mpr121.h:222
Result Init(Config config)
Definition mpr121.h:117
RegMap
Definition mpr121.h:289
@ MPR121_NHDT
Definition mpr121.h:303
@ MPR121_DEBOUNCE
Definition mpr121.h:309
@ MPR121_MHDR
Definition mpr121.h:295
@ MPR121_GPIOCLR
Definition mpr121.h:324
@ MPR121_GPIODIR
Definition mpr121.h:321
@ MPR121_FDLF
Definition mpr121.h:302
@ MPR121_SOFTRESET
Definition mpr121.h:327
@ MPR121_FDLR
Definition mpr121.h:298
@ MPR121_NHDR
Definition mpr121.h:296
@ MPR121_TARGETLIMIT
Definition mpr121.h:319
@ MPR121_TOUCHTH_0
Definition mpr121.h:307
@ MPR121_NHDF
Definition mpr121.h:300
@ MPR121_NCLR
Definition mpr121.h:297
@ MPR121_TOUCHSTATUS_H
Definition mpr121.h:291
@ MPR121_AUTOCONFIG0
Definition mpr121.h:315
@ MPR121_FILTDATA_0L
Definition mpr121.h:292
@ MPR121_GPIOEN
Definition mpr121.h:322
@ MPR121_MHDF
Definition mpr121.h:299
@ MPR121_FDLT
Definition mpr121.h:305
@ MPR121_LOWLIMIT
Definition mpr121.h:318
@ MPR121_RELEASETH_0
Definition mpr121.h:308
@ MPR121_NCLF
Definition mpr121.h:301
@ MPR121_AUTOCONFIG1
Definition mpr121.h:316
@ MPR121_CHARGETIME_1
Definition mpr121.h:313
@ MPR121_BASELINE_0
Definition mpr121.h:294
@ MPR121_CONFIG2
Definition mpr121.h:311
@ MPR121_CONFIG1
Definition mpr121.h:310
@ MPR121_GPIOSET
Definition mpr121.h:323
@ MPR121_ECR
Definition mpr121.h:314
@ MPR121_UPLIMIT
Definition mpr121.h:317
@ MPR121_FILTDATA_0H
Definition mpr121.h:293
@ MPR121_TOUCHSTATUS_L
Definition mpr121.h:290
@ MPR121_GPIOTOGGLE
Definition mpr121.h:325
@ MPR121_NCLT
Definition mpr121.h:304
@ MPR121_CHARGECURR_0
Definition mpr121.h:312
uint16_t ReadRegister16(uint8_t reg)
Definition mpr121.h:244
Mpr121I2CTransport()
Definition mpr121.h:20
bool Init(Config config)
Definition mpr121.h:47
bool ReadDataAtAddress(uint8_t address, uint8_t *data, uint16_t size)
Definition mpr121.h:63
bool WriteDataAtAddress(uint8_t address, uint8_t *data, uint16_t size)
Definition mpr121.h:71
~Mpr121I2CTransport()
Definition mpr121.h:21
static void Delay(uint32_t delay_ms)
#define MPR121_TOUCH_THRESHOLD_DEFAULT
default touch threshold value
Definition mpr121.h:7
#define MPR121_I2CADDR_DEFAULT
default I2C address
Definition mpr121.h:6
#define MPR121_RELEASE_THRESHOLD_DEFAULT
default relese threshold value
Definition mpr121.h:8
Hardware defines and helpers for daisy field platform.
Definition index.h:2
@ PORTB
Definition daisy_core.h:178
struct daisy::I2CHandle::Config::@15 pin_config
Mode mode
Definition i2c.h:65
Pin scl
Definition i2c.h:60
Speed speed
Definition i2c.h:64
Peripheral periph
Definition i2c.h:57
Peripheral
Definition i2c.h:40
Pin sda
Definition i2c.h:61
uint8_t release_threshold
Definition mpr121.h:99
Transport::Config transport_config
Definition mpr121.h:97
uint8_t touch_threshold
Definition mpr121.h:98
Config()
Definition mpr121.h:101
Pin sda
Definition mpr121.h:28
I2CHandle::Config::Peripheral periph
Definition mpr121.h:25
Pin scl
Definition mpr121.h:27
Config()
Definition mpr121.h:34
I2CHandle::Config::Mode mode
Definition mpr121.h:30
uint8_t dev_addr
Definition mpr121.h:32
I2CHandle::Config::Speed speed
Definition mpr121.h:26
representation of hardware port/pin combination
Definition daisy_core.h:193