——DWINi arendajafoorumist
Selles numbris tutvustame DWIN-i arendajafoorumi auhinnatud avatud lähtekoodiga juhtumit – Intervallsete žestide tuvastamise testsüsteemi. Insenerid kasutavad T5L OS-i tuuma kaudu PAJ7620U2 žestituvastusanduriga suhtlemiseks 7-tollist COF-nutiekraani. Ühtegi nuppu pole vaja kasutada. Menüüsüsteemi juhtekraanile sisenemiseks peate lihtsalt panema käe anduri lähedale ja realiseerima 9 žestiefekti: üles, alla, vasakule, paremale, lähedale, kaugele, vasakule pööramisele, paremale pööramisele ja lainele.
1. UIMmaterjalistDisplay
![asd (2)](https://ecdn6.globalso.com/upload/p/1355/source/2024-06/665f07846d9de96799.png)
![asd (1)](https://ecdn6.globalso.com/upload/p/1355/source/2024-06/665f07860ad7d49985.png)
2.C51 Tehniline projekteerimine
T5L OS-i tuum suhtleb andmete interaktsiooniks žestituvastussensoriga PAJ7620U2, tuvastab praeguse žesti, määrab lehekülge keerates hetkel kuvatava pildi ja kuvatava pildi ning realiseerib žestide abil lehtede vahetamise funktsiooni. Viitekood on järgmine:
void select_operate(uint16_t gesrure_value)
{
if(gesrure_value == GES_UP) //üles
{
if(vali_väärtus >= 2)
{
vali_väärtus -= 2;
}
dgus_show_variate_icon_location_set(SELECT_DESCRIBE_RECTANGLE, select_pos[valimise_väärtus][0], select_pos[vali_väärtus][1]);
}
else if(gesrure_value == GES_DOWN) //alla
{
if(vali_väärtus
{
vali_väärtus += 2;
}
dgus_show_variate_icon_location_set(SELECT_DESCRIBE_RECTANGLE, select_pos[valimise_väärtus][0], select_pos[vali_väärtus][1]);
}
else if(gesrure_value == GES_LEFT) //left
{
if(vali_väärtus % 2 == 1)
{
vali_väärtus -= 1;
}
dgus_show_variate_icon_location_set(SELECT_DESCRIBE_RECTANGLE, select_pos[valimise_väärtus][0], select_pos[vali_väärtus][1]);
}
else if(gesrure_value == GES_RIGHT) //parem
{
if(vali_väärtus % 2 == 0)
{
vali_väärtus += 1;
}
dgus_show_variate_icon_location_set(SELECT_DESCRIBE_RECTANGLE, select_pos[valimise_väärtus][0], select_pos[vali_väärtus][1]);
}
}
void turning_operate(uint16_t gesrure_value)
{
uint16_t i = 0;
uint8_t turning_mode = 0; //Lehekülje pööramise režiim, 0 üles, 1 alla, 2 vasakule, 3 paremale
uint16_t turning_count = 0; //Viimane leheküljepöörete arv
if(gesruure_value == GES_UP || gesrure_value == GES_DOWN || gesrure_value == GES_LEFT || gesrure_value == GES_RIGHT)
{
if(gesrure_value == GES_UP) //üles
{
pööramisrežiim = 0;
pöörde_arv = 48;
}
else if(gesrure_value == GES_DOWN) //alla
{
pööramisrežiim = 1;
pöörde_arv = 48;
}
else if(gesrure_value == GES_LEFT) //left
{
pööramisrežiim = 2;
pöörde_arv = 80;
}
else if(gesrure_value == GES_RIGHT) //parem
{
pööramisrežiim = 3;
pöörde_arv = 80;
}
if(pöörde_praegune_pilt == 0 || pöörde_praegune_pilt == 2)
{
pöörde_praegune_pilt = 1;
}
muidu
{
pöörde_praegune_pilt = 2;
}
for(i = 0;i
{
lüliti (pöörderežiim)
{
juhtum 0:
dgus_show_variate_icon_location_set(turning_current_image * 0x100 + 0x2000, 0, 480 - i * 10);
t5l0_sys_delay_ms(20);
if(viimane_pilt != 0)
{
dgus_show_variate_icon_location_set(turning_last_image * 0x100 + 0x2000, 0, 0 - i * 10);
}
murda;
juhtum 1:
dgus_show_variate_icon_location_set(turning_current_image * 0x100 + 0x2000, 0, -480 + i * 10);
t5l0_sys_delay_ms(20);
if(viimane_pilt != 0)
{
dgus_show_variate_icon_location_set(turning_last_image * 0x100 + 0x2000, 0, 0 + i * 10);
}
murda;
juhtum 2:
dgus_show_variate_icon_location_set(turning_current_image * 0x100 + 0x2000, 800 - i * 10, 0);
t5l0_sys_delay_ms(20);
if(viimane_pilt != 0)
{
dgus_show_variate_icon_location_set(turning_last_image * 0x100 + 0x2000, 0 - i * 10, 0);
}
murda;
juhtum 3:
dgus_show_variate_icon_location_set(turning_current_image * 0x100 + 0x2000, -800 + i * 10, 0);
t5l0_sys_delay_ms(20);
if(viimane_pilt != 0)
{
dgus_show_variate_icon_location_set(turning_last_image * 0x100 + 0x2000, 0 + i * 10, 0);
}
murda;
}
t5l0_sys_delay_ms(20);
}
pöörde_viimane_pilt = pöörde_praegune_pilt;
}
}
Postitusaeg: 21. märts 2024