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