——DWIN Geliştirici Forumundan
Bu sayımızda DWIN Geliştirici Forumu – Aralıklı Hareket Tanıma Test Sisteminin ödüllü açık kaynak örneğini tanıtacağız. Mühendisler, T5L işletim sistemi çekirdeği aracılığıyla PAJ7620U2 hareket tanıma sensörüyle etkileşim kurmak için 7 inçlik bir COF akıllı ekran kullanıyor. Herhangi bir düğmeyi kullanmanıza gerek yoktur. Menü sistemi kontrol ekranına girmek için elinizi sensöre yakın tutmanız ve yukarı, aşağı, sol, sağ, yakın, uzak, sola döndürme, sağa döndürme ve dalgadan oluşan 9 hareket efektini gerçekleştirmeniz yeterlidir.
1. kullanıcı arayüzüMmalzemeDoyun
![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 Mühendislik Tasarımı
T5L işletim sistemi çekirdeği, veri etkileşimi için PAJ7620U2 hareket tanıma sensörüyle etkileşime girer, mevcut hareketi algılar, o anda görüntülenen resmi ve sayfayı çevirerek görüntülenen resmi belirler ve hareketleri kullanarak sayfa değiştirme işlevini gerçekleştirir. Referans kodu aşağıdaki gibidir:
void select_operate(uint16_t gesrure_value)
{
if(gesrure_value == GES_UP) //yukarı
{
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) //aşağı
{
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) //sağ
{
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 turn_operate(uint16_t gesrure_value)
{
uint16_t ben = 0;
uint8_t turn_mode = 0; //Sayfa çevirme modu, 0 yukarı, 1 aşağı, 2 sola, 3 sağa
uint16_t turn_count = 0; //Son sayfa dönüşü sayısı
if(gesrure_value == GES_UP || gesrure_value == GES_DOWN || gesrure_value == GES_LEFT || gesrure_value == GES_RIGHT)
{
if(gesrure_value == GES_UP) //yukarı
{
dönüş_modu = 0;
dönüş_sayımı = 48;
}
else if(gesrure_value == GES_DOWN) //aşağı
{
dönüş_modu = 1;
dönüş_sayımı = 48;
}
else if(gesrure_value == GES_LEFT) //left
{
dönüş_modu = 2;
dönüş_sayımı = 80;
}
else if(gesrure_value == GES_RIGHT) //sağ
{
dönüş_modu = 3;
dönüş_sayımı = 80;
}
if(turning_current_image == 0 || turning_current_image == 2)
{
turn_current_image = 1;
}
başka
{
turn_current_image = 2;
}
for(i = 0;i
{
anahtar(turning_mode)
{
durum 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);
}
kırmak;
dava 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);
}
kırmak;
durum 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);
}
kırmak;
durum 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);
}
kırmak;
}
t5l0_sys_delay_ms(20);
}
turn_last_image = turn_current_image;
}
}
Gönderim zamanı: Mar-21-2024