——Do Fórum de Desenvolvedores DWIN
Nesta edição, apresentaremos o premiado case de código aberto do DWIN Developer Forum – Interval Gesture Recognition Test System. Os engenheiros usam uma tela inteligente COF de 7 polegadas para interagir com o sensor de reconhecimento de gestos PAJ7620U2 por meio do núcleo do sistema operacional T5L. Não há necessidade de usar nenhum botão. Você só precisa colocar a mão perto do sensor para entrar na tela de controle do sistema de menu e realizar 9 efeitos de gesto para cima, para baixo, para a esquerda, para a direita, para perto, para longe, para a esquerda, para a direita e para a onda.
1.IUMmaterialDÉ jogar
![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 Projeto de Engenharia
O núcleo do sistema operacional T5L interage com o sensor de reconhecimento de gestos PAJ7620U2 para interação de dados, detecta o gesto atual, determina a imagem exibida atualmente e a imagem exibida ao virar a página e realiza a função de alternar páginas usando gestos. O código de referência é o seguinte:
void select_operate(uint16_t gesrure_value)
{
if(gesrure_value == GES_UP) //acima
{
if(selecionar_valor >= 2)
{
selecione_valor -= 2;
}
dgus_show_variate_icon_location_set(SELECT_DESCRIBE_RECTANGLE, select_pos[select_value][0], select_pos[select_value][1]);
}
senão if(gesrure_value == GES_DOWN) //down
{
if(selecionar_valor
{
selecione_valor += 2;
}
dgus_show_variate_icon_location_set(SELECT_DESCRIBE_RECTANGLE, select_pos[select_value][0], select_pos[select_value][1]);
}
senão if(gesrure_value == GES_LEFT) //esquerda
{
if(selecionar_valor% 2 == 1)
{
selecione_valor -= 1;
}
dgus_show_variate_icon_location_set(SELECT_DESCRIBE_RECTANGLE, select_pos[select_value][0], select_pos[select_value][1]);
}
senão if(gesrure_value == GES_RIGHT) //certo
{
if(selecione_valor% 2 == 0)
{
selecione_valor += 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 i = 0;
uint8_t modo de rotação = 0; //Modo de virar página, 0 para cima, 1 para baixo, 2 para a esquerda, 3 para a direita
uint16_t contagem_de rotação = 0; //Último número de viradas de página
if(gesrure_value == GES_UP || gesrure_value == GES_DOWN || gesrure_value == GES_LEFT || gesrure_value == GES_RIGHT)
{
if(gesrure_value == GES_UP) //acima
{
modo_torno = 0;
contagem_de giro = 48;
}
senão if(gesrure_value == GES_DOWN) //down
{
modo_torno = 1;
contagem_de giro = 48;
}
senão if(gesrure_value == GES_LEFT) //esquerda
{
modo_torno = 2;
contagem_de giro = 80;
}
senão if(gesrure_value == GES_RIGHT) //certo
{
modo_torno = 3;
contagem_de giro = 80;
}
if(virando_imagem_atual == 0 || virando_imagem_atual == 2)
{
transformando_imagem_atual = 1;
}
outro
{
transformando_imagem_atual = 2;
}
for(i = 0;i
{
mudar (modo_de_viragem)
{
caso 0:
dgus_show_variate_icon_location_set(turning_current_image * 0x100 + 0x2000, 0, 480 - i * 10);
t5l0_sys_delay_ms(20);
if (virando_última_imagem! = 0)
{
dgus_show_variate_icon_location_set(turning_last_image * 0x100 + 0x2000, 0, 0 - i * 10);
}
quebrar;
caso 1:
dgus_show_variate_icon_location_set(turning_current_image * 0x100 + 0x2000, 0, -480 + i * 10);
t5l0_sys_delay_ms(20);
if (virando_última_imagem! = 0)
{
dgus_show_variate_icon_location_set(turning_last_image * 0x100 + 0x2000, 0, 0 + i * 10);
}
quebrar;
caso 2:
dgus_show_variate_icon_location_set(turning_current_image * 0x100 + 0x2000, 800 - i * 10, 0);
t5l0_sys_delay_ms(20);
if (virando_última_imagem! = 0)
{
dgus_show_variate_icon_location_set(turning_last_image * 0x100 + 0x2000, 0 - i * 10, 0);
}
quebrar;
caso 3:
dgus_show_variate_icon_location_set(turning_current_image * 0x100 + 0x2000, -800 + i * 10, 0);
t5l0_sys_delay_ms(20);
if (virando_última_imagem! = 0)
{
dgus_show_variate_icon_location_set(turning_last_image * 0x100 + 0x2000, 0 + i * 10, 0);
}
quebrar;
}
t5l0_sys_delay_ms(20);
}
turn_last_image = turn_current_image;
}
}
Horário da postagem: 21 de março de 2024