
Privacy statement: Your privacy is very important to Us. Our company promises not to disclose your personal information to any external company with out your explicit permission.
As telas de toque de dispositivo incorporado podem ser divididas em cinco categorias de acordo com seus princípios técnicos: detecção de pressão do vetor, resistência, capacitiva, infravermelho e onda acústica de superfície. Entre eles, as telas de toque resistivas são usadas principalmente em sistemas incorporados. As telas de toque resistivas podem ser divididas em quatro linhas, cinco linhas e sete linhas. Em geral, o design e a implementação do driver de tela de toque Wince tem as seguintes etapas:
(1) Configurar e inicializar a tela de toque
O driver da tela de toque chamará a função TouchPaneNable durante o processo de inicialização. As funções DDSI chamadas por esta função são ddsitouchpanelenable e ddsitouchPanelsisable. Essas duas funções de interface DDSI são a chave para a realização do driver, que são usadas para ligar e desligar o hardware da tela de toque. Mas, para reduzir o consumo de energia, essas duas funções não podem operar o hardware, mas implementar apenas o controle de software. Ao mesmo tempo, essas configurações e inicializações precisam ser realizadas durante a inicialização: uma é criar eventos HTouchPanelevent e Hcalibrações que amam que os dados são acionados quando uma caneta de toque é pressionada ou os dados precisam ser coletados regularmente após serem pressionados em condições normais; e o último está no estado de calibração, é acionado quando há entrada de dados de calibração. O segundo é verificar as interrupções GintrTouch (interrupção da tela de toque) e GintrTouchChanged (interrupção do timer) necessárias para a inicialização e associar essas duas interrupções ao evento hTouchPanelevent. O terceiro é criar um thread touchpanelpisr do ISR, usado para aguardar e lidar com eventos de tela de toque hTouchPanelevent, é também a única fonte de evento em todo o driver.
(2) Calibrar parâmetros de referência da tela de toque
Depois de concluir o trabalho tedioso anterior, as várias funções do motorista estão prontas e agora você pode realmente operar a tela de toque. Mas, em geral, a tela de toque resistiva precisa ser calibrada, o que significa que a camada MDD chama a função DDSI correspondente para ler os dados de correção no registro para corrigir a tela de toque durante o processo de inicialização do driver. Idealmente, o procedimento de calibração só precisa ser executado uma vez durante o teste inicial do dispositivo incorporado, e o valor de referência será armazenado na memória não volátil para impedir que os usuários recalibrem durante a inicialização inicial. No entanto, um driver de tela sensível ao toque de alta qualidade deve fornecer aos usuários uma maneira de inserir a rotina de calibração para recalibrar quando a calibração é imprecisa devido ao desvio da temperatura ou outros fatores. Idealmente, apenas dois conjuntos de dados brutos são necessários para corrigir a referência da tela de toque, ou seja, os valores mínimo e máximo lidos na diagonalmente na tela. Mas em aplicações práticas, porque muitas telas de toque resistivas têm não linearidade óbvia, se apenas um simples valor de posição de inserção entre os valores mínimo e máximo fará com que o driver seja muito impreciso. Portanto, vários pontos de calibração precisam ser adquiridos em estreia, e o número de pontos de calibração comumente usados é 5.
O método é: ① Primeiro, o driver define o número de pontos de calibração na função ddsitouchpanelgetDeviceCaps; ② é o sistema para obter as coordenadas da tela de cada ponto de calibração no ponto de touchdriverCalibrationPetget; ③ é para exibir um símbolo de posição nas coordenadas do ponto de calibração da interface da tela, o usuário pressiona a tela de toque com precisão no símbolo da posição; ④ O driver lê o valor de coordenada da tela de toque correspondente através da função TouchPanelReadCalibrationPoint; ⑤ Em seguida, inicie o próximo ponto de calibração até que o número de coordenadas da tela de toque e a tela do ponto de calibração seja coletada após o número de ciclos que as coordenadas forem enviadas para a função de calibração do touchPanesetset para processamento. Esta função gerará parâmetros de referência de calibração. Após a conclusão da calibração, a tela de toque pode iniciar a operação normal.
(3) determine se a tela é tocada
Depois que as configurações de hardware da tela de toque, a calibração de parâmetros de inicialização e referência são concluídas, é necessário um método confiável para determinar se a tela foi tocada.
O Wince fornece um mecanismo de detecção para se a tela é tocada e também pode escolher se deve interromper o processador principal quando ocorre um evento de toque. O nome da função do driver que determina se a tela é tocada é waitfortouchstate (). Uma interrupção que acorda o host quando a tela é tocada pela primeira vez é chamada de interrupção PEN_DOWN. Isso permite que o driver interrompa sua execução quando a tela não é tocada, sem consumir nenhum recurso da CPU e, uma vez que o usuário toca na tela, o driver é acordado e entra no modo de conversão.
Depois de ser despertado, há um grupo de dados analógicos para digitais aguardando a conversão e um sinal de interrupção é gerado. As interrupções são um método importante para lidar com hardware e software, portanto, a maioria dos drivers envolve o manuseio de interrupções. No que diz respeito ao manuseio de interrupções, Wince usa uma abordagem única. Ele divide o processamento de interrupção em duas etapas: interrompa a rotina de serviço (ISR) e o thread de serviço de interrupção (IST). Especificamente, a solicitação de interrupção do dispositivo (IRQ) de cada hardware está associada a um ISR. Quando ocorre uma interrupção e não é mascarada, o kernel chama o ISR registrado pela interrupção. Como o ISR é executado no modo kernel, ele deve ser projetado para ser o mais curto possível. A responsabilidade básica do ISR é orientar o kernel para agendar e iniciar o IST apropriado. O IST está escrito no módulo de software do driver de dispositivo, que adquire ou envia dados e código de controle do hardware e lida com mais interrupções no dispositivo.
O driver da tela de toque Wince usa um método de interrupção para detectar o estado pressionado da caneta de toque. Quando uma interrupção gerada quando a caneta de toque é pressionada é detectada, um evento é acionado para notificar um thread do trabalhador para começar a coletar dados. Ao mesmo tempo, o driver abrirá um cronômetro de hardware, desde que detecte que a caneta de toque ainda esteja pressionada, ele desencadeará periodicamente o mesmo evento para notificar o thread do trabalhador para continuar coletando dados até que a caneta toque seja levantada e feche o cronômetro. Simplificando, o driver usará as duas fontes de interrupção da interrupção da tela de toque e interrupção do timer ao mesmo tempo. O objetivo não é apenas monitorar o estado pressionado e levantado da caneta de toque, mas também detectar a trajetória de arrasto quando a caneta de toque for pressionada. As duas interrupções lógicas da interrupção da tela de toque são: Sysintr_Touch é usado para gerar uma interrupção correspondente quando a caneta de toque clica na tela de toque; Sysintr_toch_change é usado para gerar uma interrupção correspondente quando a caneta de toque folhas.
Idealmente, apenas dois conjuntos de dados brutos são necessários para corrigir a referência da tela de toque, ou seja, os valores mínimo e máximo lidos na diagonalmente na tela. Mas em aplicações práticas, porque muitas telas de toque resistivas têm não linearidade óbvia, se apenas um simples valor de posição de inserção entre os valores mínimo e máximo fará com que o driver seja muito impreciso. Portanto, vários pontos de calibração precisam ser adquiridos em estreia, e o número de pontos de calibração comumente usados é 5.
O método é: ① Primeiro, o driver define o número de pontos de calibração na função ddsitouchpanelgetDeviceCaps; ② é o sistema para obter as coordenadas da tela de cada ponto de calibração no ponto de touchdriverCalibrationPetget; ③ é exibir um símbolo de posição nas coordenadas do ponto de calibração da interface da tela, o usuário precisa pressionar a tela de toque com precisão no símbolo da posição; ④ O driver lê o valor de coordenada da tela de toque correspondente através da função TouchPanelReadCalibrationPoint; ⑤ Em seguida, inicie o próximo ponto de calibração até que o número de coordenadas da tela de toque e a tela do ponto de calibração seja coletada após o número de ciclos que as coordenadas forem enviadas para a função de calibração do touchPanesetset para processamento. Esta função gerará parâmetros de referência de calibração. Após a conclusão da calibração, a tela de toque pode iniciar a operação normal.
January 10, 2025
September 19, 2024
March 03, 2025
February 16, 2025
February 24, 2025
February 24, 2025
Enviar e-mail para este fornecedor
January 10, 2025
September 19, 2024
March 03, 2025
February 16, 2025
February 24, 2025
February 24, 2025
Privacy statement: Your privacy is very important to Us. Our company promises not to disclose your personal information to any external company with out your explicit permission.
Fill in more information so that we can get in touch with you faster
Privacy statement: Your privacy is very important to Us. Our company promises not to disclose your personal information to any external company with out your explicit permission.