Revision 7df78c60 include/AT42QT1050/v1/alld_AT42QT1050_v1.h
include/AT42QT1050/v1/alld_AT42QT1050_v1.h | ||
---|---|---|
250 | 250 |
float at42qt1050_lld_samples2pulse(const uint16_t samples); |
251 | 251 |
uint16_t at42qt1050_lld_scale2scaling(const uint8_t scale); |
252 | 252 |
float at42qt1050_lld_scaling2scale(const uint16_t factor); |
253 |
|
|
254 |
|
|
255 |
/** |
|
256 |
* @brief Calculates n-th address based on address of register 0. |
|
257 |
* @details Calculation: <scale value> = log2(<scaling factor> |
|
258 |
* ) |
|
259 |
* @param[in] base Base address = frist register |
|
260 |
* @param[in] inc Jump to the next register inc times |
|
261 |
* |
|
262 |
* @return Calculated register address |
|
263 |
*/ |
|
264 |
inline at42qt1050_lld_register_t at42qt1050_lld_addr_calc(const at42qt1050_lld_register_t base, const uint8_t inc) { |
|
265 |
apalDbgAssert(inc < 5); |
|
266 |
|
|
267 |
uint8_t double_result = 0; //16bit access |
|
268 |
|
|
269 |
switch (base) { |
|
270 |
case AT42QT1050_LLD_REG_KEYSIGNAL_0: //2 4 2 2 |
|
271 |
case AT42QT1050_LLD_REG_REFERENCEDATA_0: //2 4 2 2 |
|
272 |
double_result = 1; |
|
273 |
case AT42QT1050_LLD_REG_NEGATIVETHRESHOLD_0: //1 2 1 1 |
|
274 |
case AT42QT1050_LLD_REG_PULSE_SCALE_0: //1 2 1 1 |
|
275 |
case AT42QT1050_LLD_REG_INTEGRATOR_AKS_0: //1 2 1 1 |
|
276 |
case AT42QT1050_LLD_REG_CHARGESHAREDELAY_0: //1 2 1 1 |
|
277 |
{ |
|
278 |
uint8_t increase = ((inc>1)?inc+1:inc); |
|
279 |
return (at42qt1050_lld_register_t) (((uint8_t) base)+(increase << double_result)); |
|
280 |
} |
|
281 |
default: |
|
282 |
{ |
|
283 |
apalDbgPrintf("invalid base register 0x%04X\n", base); |
|
284 |
return (at42qt1050_lld_register_t) 0xFF; //does not exist |
|
285 |
} |
|
286 |
} |
|
287 |
} |
|
288 |
|
|
253 | 289 |
#ifdef __cplusplus |
254 | 290 |
} |
255 | 291 |
#endif |
Also available in: Unified diff