Esempio n. 1
0
/* initialize for touch & calibration */
int touch_calibration_init(void)
{
    rt_uint8_t magic = 0;
    calculate_data_t data;
    struct rtgui_calibration_ops *ops;

    ops = calibration_get_ops();

    /* initialization the eeprom  on chip  */
    EEPROM_Init();
    /* initialization the touch driver */
    rtgui_touch_hw_init("spi10");
    /* set callback to save calibration data */
    calibration_set_after(calibration_data_save);
    /* initialization rtgui tonch server */
    rtgui_touch_init(ops);
    /* restore calibration data */
    EEPROM_Read(0, CALIBRATION_DATA_PAGE, &magic, MODE_8_BIT, 1);
    if (CALIBRATION_DATA_MAGIC != magic)
    {
        rt_kprintf("touch is not calibration,now calibration it please.\n");
        calibration_init(RT_NULL);
    }
    else
    {
        EEPROM_Read(CALIBRATION_DATA_OFFSET, CALIBRATION_DATA_PAGE, &data, MODE_8_BIT, sizeof(calculate_data_t));
        calibration_set_data(&data);
    }
    /* power down the EEPROM */
    EEPROM_PowerDown(ENABLE);
    return 0;
}
void test_last_point(void)
{
	calibration_set_data(calibration_data);
	TEST_ASSERT_EQUAL(400, get_calibration(200));
}
void test_above_bounds(void)
{
	calibration_set_data(calibration_data);
	TEST_ASSERT_EQUAL(0, get_calibration(201));
}
void test_interpolation(void)
{
	calibration_set_data(calibration_data);
	TEST_ASSERT_EQUAL(142, get_calibration(42));
}
void test_middle_point(void)
{
	calibration_set_data(calibration_data);
	TEST_ASSERT_EQUAL(200, get_calibration(100));
}
void test_first_point(void)
{
	calibration_set_data(calibration_data);
	TEST_ASSERT_EQUAL(100, get_calibration(0));
}
void test_below_bounds(void)
{
	calibration_set_data(calibration_data);
	TEST_ASSERT_EQUAL(0, get_calibration(-10));
}
void test_empty(void)
{
	calibration_set_data(calibration_empty_data);
	TEST_ASSERT_EQUAL(0, get_calibration(10));
}