——Ti DWIN Forum pamekar
Dina masalah ieu, urang bakal ngenalkeun kasus open source anu meunang pangajén tina DWIN Developer Forum - Interval Gesture Recognition Test System. Insinyur ngagunakeun layar pinter COF 7 inci pikeun berinteraksi sareng sensor pangakuan gesture PAJ7620U2 ngaliwatan inti T5L OS. Henteu kedah nganggo tombol naon waé. Anjeun ngan perlu nempatkeun leungeun Anjeun deukeut sensor pikeun asup ka layar kontrol sistem menu, sarta sadar 9 épék gesture tina luhur, handap, kénca, katuhu, deukeut, jauh, rotasi kénca, rotasi katuhu, sarta gelombang.
1.UIMbahanDkaulinan
![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 Desain Téknik
Inti T5L OS berinteraksi sareng sensor pangakuan gesture PAJ7620U2 pikeun interaksi data, ngadeteksi gesture ayeuna, nangtukeun gambar ayeuna ditampilkeun jeung gambar dipintonkeun ku ngarobah kaca, sarta nyadar fungsi pindah kaca ngagunakeun sapuan. Kodeu rujukan nyaéta kieu:
void select_operate(uint16_t gesrure_value)
{
lamun (gesrure_value == GES_UP) //up
{
lamun (select_value >= 2)
{
pilih_nilai -= 2;
}
dgus_show_variate_icon_location_set(SELECT_DESCRIBE_RECTANGLE, select_pos[select_value][0], select_pos[select_value][1]);
}
lain lamun (gesrure_value == GES_DOWN) // handap
{
lamun (select_value
{
pilih_nilai += 2;
}
dgus_show_variate_icon_location_set(SELECT_DESCRIBE_RECTANGLE, select_pos[select_value][0], select_pos[select_value][1]);
}
lain lamun (gesrure_value == GES_LEFT) // ditinggalkeun
{
lamun(select_value% 2 == 1)
{
pilih_nilai -= 1;
}
dgus_show_variate_icon_location_set(SELECT_DESCRIBE_RECTANGLE, select_pos[select_value][0], select_pos[select_value][1]);
}
lain lamun (gesrure_value == GES_RIGHT) // katuhu
{
lamun (select_value% 2 == 0)
{
pilih_nilai += 1;
}
dgus_show_variate_icon_location_set(SELECT_DESCRIBE_RECTANGLE, select_pos[select_value][0], select_pos[select_value][1]);
}
}
batal turning_operate(uint16_t gesrure_value)
{
uint16_t i = 0;
uint8_t turning_mode = 0; //Mode ngarobah halaman, 0 ka luhur, 1 ka handap, 2 ka kénca, 3 ka katuhu
uint16_t turning_count = 0; //Jumlah panungtungan péngkolan kaca
if(nilai_gesrure == GES_UP || nilai_gesrure == GES_TURUN || nilai_gesrure == GES_LEFT || nilai_gesrure == GES_RIGHT)
{
lamun (gesrure_value == GES_UP) //up
{
turning_mode = 0;
turning_count = 48;
}
lain lamun (gesrure_value == GES_DOWN) // handap
{
turning_mode = 1;
turning_count = 48;
}
lain lamun (gesrure_value == GES_LEFT) // ditinggalkeun
{
turning_mode = 2;
turning_count = 80;
}
lain lamun (gesrure_value == GES_RIGHT) // katuhu
{
turning_mode = 3;
turning_count = 80;
}
lamun (turning_current_image == 0 || turning_current_image == 2)
{
turning_current_image = 1;
}
lain
{
turning_current_image = 2;
}
pikeun(i = 0;i
{
switch (turning_mode)
{
kasus 0:
dgus_show_variate_icon_location_set (turning_current_image * 0x100 + 0x2000, 0, 480 - i * 10);
t5l0_sys_delay_ms(20);
lamun (turning_last_image! = 0)
{
dgus_show_variate_icon_location_set (turning_last_image * 0x100 + 0x2000, 0, 0 - i * 10);
}
megatkeun;
kasus 1:
dgus_show_variate_icon_location_set (turning_current_image * 0x100 + 0x2000, 0, -480 + i * 10);
t5l0_sys_delay_ms(20);
lamun (turning_last_image! = 0)
{
dgus_show_variate_icon_location_set (turning_last_image * 0x100 + 0x2000, 0, 0 + i * 10);
}
megatkeun;
kasus 2:
dgus_show_variate_icon_location_set (turning_current_image * 0x100 + 0x2000, 800 - i * 10, 0);
t5l0_sys_delay_ms(20);
lamun (turning_last_image! = 0)
{
dgus_show_variate_icon_location_set (turning_last_image * 0x100 + 0x2000, 0 - i * 10, 0);
}
megatkeun;
kasus 3:
dgus_show_variate_icon_location_set (turning_current_image * 0x100 + 0x2000, -800 + i * 10, 0);
t5l0_sys_delay_ms(20);
lamun (turning_last_image! = 0)
{
dgus_show_variate_icon_location_set (turning_last_image * 0x100 + 0x2000, 0 + i * 10, 0);
}
megatkeun;
}
t5l0_sys_delay_ms(20);
}
turning_last_image = turning_current_image;
}
}
waktos pos: Mar-21-2024