[קוד פתוח] מערכת בדיקת זיהוי מחוות מרווח

——מפורום המפתחים של DWIN

בגיליון זה, נציג את מקרה הקוד הפתוח עטור הפרסים של פורום המפתחים של DWIN – מערכת בדיקת זיהוי מחוות אינטרוול. המהנדסים משתמשים במסך חכם COF בגודל 7 אינץ' כדי ליצור אינטראקציה עם חיישן זיהוי מחוות PAJ7620U2 דרך ליבת מערכת ההפעלה T5L. אין צורך להשתמש באף כפתור. אתה רק צריך לשים את היד שלך קרוב לחיישן כדי להיכנס למסך הבקרה של מערכת התפריט, ולהבין 9 אפקטים של מחוות של למעלה, למטה, שמאלה, ימינה, קרוב, רחוק, סיבוב שמאלה, סיבוב ימינה והנפה.

1.UIMחוֹמֶרדisplay

asd (2)
asd (1)

2.C51 תכנון הנדסי

ליבת OS T5L מקיימת אינטראקציה עם חיישן זיהוי מחוות PAJ7620U2 לאינטראקציה עם נתונים, מזהה את המחווה הנוכחית, קובעת את התמונה המוצגת כעת ואת התמונה המוצגת על ידי הפיכת הדף, ומממשת את הפונקציה של החלפת עמודים באמצעות מחוות. קוד ההתייחסות הוא כדלקמן:

void select_operate(uint16_t gesrure_value)

{

if(gesrure_value == GES_UP) //up

{

if(select_value >= 2)

{

select_value -= 2;

}

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

}

else if(gesrure_value == GES_DOWN) //down

{

if(select_value

{

select_value += 2;

}

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

}

else if(gesrure_value == GES_LEFT) //left

{

if(select_value % 2 == 1)

{

select_value -= 1;

}

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

}

else if(gesrure_value == GES_RIGHT) //right

{

if(select_value % 2 == 0)

{

select_value += 1;

}

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

}

}

 

void turning_operate(uint16_t gesrure_value)

{

uint16_t i = 0;

uint8_t turning_mode = 0; //מצב הפיכת עמוד, 0 למעלה, 1 למטה, 2 שמאלה, 3 ימינה

uint16_t turning_count = 0; //מספר סיבובי עמודים אחרון

if(gesrure_value == GES_UP || gesrure_value == GES_DOWN || gesrure_value == GES_LEFT || gesrure_value == GES_RIGHT)

{

if(gesrure_value == GES_UP) //up

{

turning_mode = 0;

ספירת_סיבוב = 48;

}

else if(gesrure_value == GES_DOWN) //down

{

turning_mode = 1;

ספירת_סיבוב = 48;

}

else if(gesrure_value == GES_LEFT) //left

{

turning_mode = 2;

ספירת_סיבוב = 80;

}

else if(gesrure_value == GES_RIGHT) //right

{

turning_mode = 3;

ספירת_סיבוב = 80;

}

if(turning_current_image == 0 || turning_current_image == 2)

{

סיבוב_נוכחי_תמונה = 1;

}

אַחֵר

{

סיבוב_נוכחי_תמונה = 2;

}

for(i = 0;i

{

switch(turning_mode)

{

מקרה 0:

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

t5l0_sys_delay_ms(20);

if(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);

if(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);

if(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);

if(turning_last_image != 0)

{

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

}

לשבור;

}

t5l0_sys_delay_ms(20);

}

turning_last_image = turning_current_image;

}

}


זמן פרסום: 21-3-2024