Hello,
to save the calibration data and avoid the calibration screen call on each start of application is needed any NVM storage place (it depends on application - Flash, SPI/IIC EEPROM, SD card etc) and then used the prepared API in eGUI.
In simply after start up check if the calibration data are ready in application storage place, if yes just push it into eGUI. If not then force to call off calibration screen and after calibration screen finish just take calibration data from eGUI and store it on application storage place.
Tip: keep in application any back door to be able to erase calibration data by any other way then touch screen is - due to possible corrupted calibration data (or bad) to avoid no chance of correct control application by touch.
Code example:
// The calibration data are stored in memory that is backuped by battery (Kinetis VBAT memory)
#define my_tchscrCalib (*((D4D_TOUCHSCREEN_CALIB*)&RFVBAT_REG0))
if(my_tchscrCalib.ScreenCalibrated)
{
D4D_SetTouchScreenCalibration(my_tchscrCalib);
_time_delay(100);
}
else
{
D4D_CalibrateTouchScreen();
my_tchscrCalib = D4D_GetTouchScreenCalibration();
}
Petr