implemented touchpad calibration storage interface
This commit is contained in:
parent
0ba16c35af
commit
5de2e9ac86
2 changed files with 17 additions and 0 deletions
|
@ -52,6 +52,10 @@
|
|||
/* Type definitions */
|
||||
/*===========================================================================*/
|
||||
|
||||
#ifndef TOUCHPAD_STORE_CALIBRATION
|
||||
#define TOUCHPAD_STORE_CALIBRATION FALSE
|
||||
#endif
|
||||
|
||||
/**
|
||||
* @brief Struct used for calibration
|
||||
*/
|
||||
|
@ -83,6 +87,11 @@ void tpCalibrate(void);
|
|||
uint16_t tpReadZ(void);
|
||||
#endif
|
||||
|
||||
#if TOUCHPAD_STORE_CALIBRATION
|
||||
extern void lld_tpWriteCalibration(struct cal cal);
|
||||
extern struct cal lld_tpReadCalibration(void);
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -143,6 +143,10 @@ void tpInit(const TOUCHPADDriver *tp) {
|
|||
//MUTEX_ENTER
|
||||
tp_lld_init(tp);
|
||||
//MUTEX_EXIT
|
||||
|
||||
#if TOUCHPAD_STORE_CALIBRATION
|
||||
cal = lld_tpReadCalibration();
|
||||
#endif
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -222,6 +226,10 @@ void tpCalibrate(void) {
|
|||
|
||||
cal.xn = (float)cross[0][0] - cal.xm * (float)points[0][0];
|
||||
cal.yn = (float)cross[0][1] - cal.ym * (float)points[0][1];
|
||||
|
||||
#if TOUCHPAD_STORE_CALIBRATION
|
||||
lld_tpWriteCalibration(cal);
|
||||
#endif
|
||||
}
|
||||
|
||||
#if TOUCHPAD_HAS_IRQ || defined(__DOXYGEN__)
|
||||
|
|
Loading…
Add table
Reference in a new issue