[مفتوح المصدر] نظام اختبار التعرف على الإيماءات الفاصلة

——من منتدى مطوري DWIN

في هذا العدد، سنقدم حالة مفتوحة المصدر حائزة على جوائز لمنتدى مطوري DWIN - نظام اختبار التعرف على الإيماءات بالفاصل الزمني. يستخدم المهندسون شاشة COF ذكية مقاس 7 بوصات للتفاعل مع مستشعر التعرف على الإيماءات PAJ7620U2 من خلال نواة نظام التشغيل T5L. ليست هناك حاجة لاستخدام أي أزرار. كل ما عليك فعله هو وضع يدك بالقرب من المستشعر للدخول إلى شاشة التحكم في نظام القائمة، وتحقيق 9 تأثيرات إيماءة للأعلى والأسفل واليسار واليمين والإغلاق والبعيد والدوران الأيسر والدوران الأيمن والموجة.

1.UIممادةدهو اللعب

ايه اس دي (2)
ايه اس دي (1)

2.C51 التصميم الهندسي

يتفاعل نواة نظام التشغيل T5L مع مستشعر التعرف على الإيماءات PAJ7620U2 لتفاعل البيانات، ويكتشف الإيماءة الحالية، ويحدد الصورة المعروضة حاليًا والصورة المعروضة عن طريق قلب الصفحة، ويدرك وظيفة تبديل الصفحات باستخدام الإيماءات. الرمز المرجعي هو كما يلي:

تحديد_تشغيل باطلة (uint16_t gesrure_value)

{

if(gesrure_value == GES_UP) //up

{

إذا (select_value >= 2)

{

حدد_قيمة -= 2;

}

dgus_show_variate_icon_location_set(SELECT_DESCRIBE_RECTANGLE, Select_pos[select_value][0], Select_pos[select_value][1]);

}

وإلا إذا (gesrure_value == GES_DOWN) //down

{

إذا (اختر_القيمة

{

Select_value += 2;

}

dgus_show_variate_icon_location_set(SELECT_DESCRIBE_RECTANGLE, Select_pos[select_value][0], Select_pos[select_value][1]);

}

وإلا إذا (gesrure_value == GES_LEFT) //left

{

إذا (اختر_القيمة % 2 == 1)

{

حدد_قيمة -= 1;

}

dgus_show_variate_icon_location_set(SELECT_DESCRIBE_RECTANGLE, Select_pos[select_value][0], Select_pos[select_value][1]);

}

وإلا إذا (gesrure_value == GES_RIGHT) //right

{

إذا (اختر_القيمة % 2 == 0)

{

Select_value += 1;

}

dgus_show_variate_icon_location_set(SELECT_DESCRIBE_RECTANGLE, Select_pos[select_value][0], Select_pos[select_value][1]);

}

}

 

تشغيل باطل (uint16_t gesrure_value)

{

uint16_t i = 0;

uint8_t Turn_mode = 0; //وضع قلب الصفحة، 0 لأعلى، 1 لأسفل، 2 لليسار، 3 لليمين

uint16_t Turn_count = 0; //آخر عدد من الصفحات

إذا (gesrure_value == GES_UP || gesrure_value == GES_DOWN || gesrure_value == GES_LEFT || gesrure_value == GES_RIGHT)

{

if(gesrure_value == GES_UP) //up

{

Turn_mode = 0;

Turn_count = 48;

}

وإلا إذا (gesrure_value == GES_DOWN) //down

{

Turn_mode = 1;

Turn_count = 48;

}

وإلا إذا (gesrure_value == GES_LEFT) //left

{

Turn_mode = 2;

Turn_count = 80;

}

وإلا إذا (gesrure_value == GES_RIGHT) //right

{

Turn_mode = 3;

Turn_count = 80;

}

إذا (turning_current_image == 0 || Turning_current_image == 2)

{

Turn_current_image = 1;

}

آخر

{

Turn_current_image = 2;

}

ل(i = 0;i

{

التبديل (وضع الدوران)

{

الحالة 0:

dgus_show_variate_icon_location_set(turning_current_image * 0x100 + 0x2000, 0, 480 - i * 10);

t5l0_sys_delay_ms(20);

إذا (turning_last_image ! = 0)

{

dgus_show_variate_icon_location_set(turning_last_image * 0x100 + 0x2000, 0, 0 - i * 10);

}

استراحة؛

حالة 1:

dgus_show_variate_icon_location_set(turning_current_image * 0x100 + 0x2000, 0, -480 + i * 10);

t5l0_sys_delay_ms(20);

إذا (turning_last_image ! = 0)

{

dgus_show_variate_icon_location_set(turning_last_image * 0x100 + 0x2000, 0, 0 + i * 10);

}

استراحة؛

الحالة 2:

dgus_show_variate_icon_location_set(turning_current_image * 0x100 + 0x2000, 800 - i * 10, 0);

t5l0_sys_delay_ms(20);

إذا (turning_last_image ! = 0)

{

dgus_show_variate_icon_location_set(turning_last_image * 0x100 + 0x2000, 0 - i * 10, 0);

}

استراحة؛

الحالة 3:

dgus_show_variate_icon_location_set(turning_current_image * 0x100 + 0x2000, -800 + i * 10, 0);

t5l0_sys_delay_ms(20);

إذا (turning_last_image ! = 0)

{

dgus_show_variate_icon_location_set(turning_last_image * 0x100 + 0x2000, 0 + i * 10, 0);

}

استراحة؛

}

t5l0_sys_delay_ms(20);

}

Turn_last_image = Turn_current_image;

}

}


وقت النشر: 21 مارس 2024