Teclado com mcu

Circuitos eletrônicos, topologias, diagramas elétricos, etc...

Moderadores: 51, Renie, gpenga

Mensagempor vtrx » 14 Abr 2011 21:21

Minha pergunta é tão difícil assim??
Avatar do usuário
vtrx
Dword
 
Mensagens: 2239
Registrado em: 20 Abr 2008 21:01

Mensagempor chipselect » 15 Abr 2011 07:44

bom, o Windows deixa as portas USB com uma varredura de 125Hz por padrão...

infelizmente é "Polling", mas isso é devido à natureza do próprio USB, não é?
chipselect
Word
 
Mensagens: 744
Registrado em: 16 Out 2006 18:50

Mensagempor fabim » 15 Abr 2011 07:49

O MAXIMO tempo é 65mS e o minimo depende se é bulk etc...

Quem especifica o tempo entre os poolings é o descriptor do device, ou o drive instalado no pc..

O windows não tem padrão nenhum..

E outra, fiote que pediu ajuda, faz o teclado com.
Interrupção, ligado a um usb, com divisor analogico, com teste diferente para saber quais teclas foram precionadas!!

E tome maracujina depois dessa discução!!! hehehe
Mano, ve só.
Sou responsável pelo que escrevo!!! E não pelo que você entende !!!
fabim
Dword
 
Mensagens: 5001
Registrado em: 16 Out 2006 10:18
Localização: aqui uái!!!?

Mensagempor vtrx » 15 Abr 2011 08:19

Então pessoal,sobre o USB no PC eu sei pois programo o PIC e AVR em ASM,por isso citei que o USB faz Polling.
Mas eu preciso saber sobre o esquema que postei.
Qual seria a lógica com microchaves 'normalmente aberto'???
Chaves 'normalmente fechado',é mais difícil de encontrar e é mais fácil de apresentar defeito na leitura(mal contato gerando erro).
Eu só tenho 4 pinos (portas IO)livres e preciso ler 16 chaves,ou o projeto terá que ser modificado e isso vai detonar o preço final.
Avatar do usuário
vtrx
Dword
 
Mensagens: 2239
Registrado em: 20 Abr 2008 21:01

Mensagempor vtrx » 15 Abr 2011 11:45

Vai a tabela dos resultados usando chaves NC.
[img][img]http://img847.imageshack.us/img847/6347/keysp.jpg[/img]

Uploaded with ImageShack.us[/img]


____________________________________
" existe coisas que nem o Google responde..."
Avatar do usuário
vtrx
Dword
 
Mensagens: 2239
Registrado em: 20 Abr 2008 21:01

Mensagempor fabim » 15 Abr 2011 13:06

Intão VTRX deixa eu te falar.

Sobre usb, ainda não encontrei alguém que saiba tanto quanto o bastante para fazer um stack para microchip em C.
Como peguei nojo de "HOLTEK, PIC, AVR, 8051, Z80, outros não arm"...


http://www.rosseeld.be/DRO/PIC/USB%20HI ... 202009.rar

http://www.rosseeld.be/DRO/PIC/joystick ... C_ANSI.rar


http://www.rosseeld.be/DRO/PIC/index.htm

E olha que eu nem programei em asm eim!!!

Cara, o pooling é informado diretamente pelo descriptor ou drive.
Um dispositivo device usb, não escreve nada para o pc!!! Nadinha!!!
Ele é lido apenas!!! Isso você ja entendeu !!!

Sobre as chaves eu estou tentando entender, e até o momento ainda não entendi. O que você realmente quer ?
Mano, ve só.
Sou responsável pelo que escrevo!!! E não pelo que você entende !!!
fabim
Dword
 
Mensagens: 5001
Registrado em: 16 Out 2006 10:18
Localização: aqui uái!!!?

Mensagempor vtrx » 15 Abr 2011 14:19

Fabim,não sei porque ta botando USB no meio Hehe.
Quando começei em USB,eu testei os exemplos de joystick no mikro c,mas a lib deles é restrita(se voce escolher outro micro sem ser os 18F ele não compila).
Eu utilizo ASM no PIC e AVR pois os AVR que utilizei não tem USB então estava interessado em uma rotina por Software(em C é suicídio) e alem domais eu sou tambem programador profissional (Windows) eu me foi pedido um compilador em linguagem de alto nível para estudantes,logo tenho que saber configurar e utilizar as rotinas em ASM.
O device não envia nada mas responde tudo,logo tem que ser 'consultado',existe links na net com 'programas' para acelerar o Polling USB no windows (usado em jogos).
Mas eu queria mesmo é divir a dúvida do teclado antes de ficar fazendo protótipos inúteis.
PS:Esse esquema de chave utiliza chaves NC(normalmente fechado),mas quero utilizar as NO(normalmente aberto)pelos motivos que citei.
Avatar do usuário
vtrx
Dword
 
Mensagens: 2239
Registrado em: 20 Abr 2008 21:01

Mensagempor vtrx » 15 Abr 2011 21:53

Recebí uma mensagem privada onde foi comentado que o esquema está montado com chaves NO(normalmente aberto).
Sei que os ports RB tem resitores Pull Up.
Seguindo então a idéia de NO e Pull Up,a tabela verdade faz sentido.
Alguem contra?
Avatar do usuário
vtrx
Dword
 
Mensagens: 2239
Registrado em: 20 Abr 2008 21:01

Mensagempor chipselect » 17 Abr 2011 21:50

achei que o driver padrão do windows, principalmente pra mouse, vinham com 125Hz como padrão, porque pra ajustar o mouse pra 1000Hz eu baixo um driver customizado e instalo um hidusb.inf também customizado...
chipselect
Word
 
Mensagens: 744
Registrado em: 16 Out 2006 18:50

Mensagempor fabim » 18 Abr 2011 08:03

vtrx sobre os links que eu postei acho que voce não viu direito.
Código: Selecionar todos
USB "HID" library, MikroC Pro 2009 version. More details...
Permits to read data from and write data to USB devices using the "HID" protocol (no driver at PC side required).
Author: Fabio Silva (alias Fabim at the mE forum).
Attention: Fabio is no longer supporting the version for mikroC 8.2.


Eu escrevi este stack a 4 anos, me baseando em um aplication note explicativo de microchip e dos documentos da usb.org..
É open source, pode pegar lá!!!!!

Eu fui contratado pra fazer o dito, e quando acabei e fui entregar o cara quis me enrolar e pagar 1/3 do combinado...
Era um composite.
Joystick + teclado + mouse. No mesmo descriptor, papinha de nenem!!

Ai joguei na net, e foda-se o cara, ele só descobriu que eu fiz e coloquei na net depois de uns 2 anos, e ainda mandou um email me ofendendo !!! hehehe

Agora, se alguém ousa me desafiar dizendo que o que eu falei acima esta errado, escreva um stack em 6 meses de pesquisa, depois eu dou atenção,..

Voltarndo as chaves,:
O PORTB do pic, faz int por mudança de estado em qualquer um dos pinos. Seja chave NO ou NC, tanto faz, a logica não muda!!
O problema as vezes é que os cabras fazem assim.:

interrompeu ? faz scan, pega bt precionado, save, volta!!
Só que o cabra liga o teclado antes dele estar no standby state!!!!
Ai, assim.:
Você liga a interrupção, aconteceu a interrupção.:

estado = PORTB;
if(estado != standby){
ai sim aqui voce pega o novo valor.!!!
}

era isso sua duvida? ou ainda não entendi ?
Mano, ve só.
Sou responsável pelo que escrevo!!! E não pelo que você entende !!!
fabim
Dword
 
Mensagens: 5001
Registrado em: 16 Out 2006 10:18
Localização: aqui uái!!!?

Mensagempor vtrx » 18 Abr 2011 11:47

Fabim,ja resolví a parte do teclado,é só seguir a tabela,que em ASM é a mesma coisa.
Sobre o MikroC,eu ja tinha lido sobre o esquema,alías,um usuario postou as alterações para Joy e voce continuou,foi oque li no forum na época,mas eu só programo em ASM eu ja tenho o 'esqueleto'completo para todos os PIC com USB(Full,BUlk etc).
http://www.mikroe.com/forum/viewtopic.php?f=13&t=13811
JoyStick,prefiro com AVR AT8,que é barato e sem 'Lag',pois é programado em ASM,(mesmo que seja por SofTware,coisas de AVR mesmo).
Avatar do usuário
vtrx
Dword
 
Mensagens: 2239
Registrado em: 20 Abr 2008 21:01

Mensagempor fabim » 19 Abr 2011 08:11

vtrx escreveu:Fabim,ja resolví a parte do teclado,é só seguir a tabela,que em ASM é a mesma coisa.
Sobre o MikroC,eu ja tinha lido sobre o esquema,alías,um usuario postou as alterações para Joy e voce continuou,foi oque li no forum na época,mas eu só programo em ASM eu ja tenho o 'esqueleto'completo para todos os PIC com USB(Full,BUlk etc).
http://www.mikroe.com/forum/viewtopic.php?f=13&t=13811
JoyStick,prefiro com AVR AT8,que é barato e sem 'Lag',pois é programado em ASM,(mesmo que seja por SofTware,coisas de AVR mesmo).


não MR.
Essa epoca ai, eu tava usando a biblioteca usb hid da mikroC!!!
Eu tava fazendo a minha, e depois descobri o descriptor create junto com o manuel no USB.ORG.
La tem um APP ensinando você criar um descriptor de um teclado fodastico, com N funcionalidades, e linhas de comunicação direta com a API do windows !!!
Muitissimo legal.
Mano, ve só.
Sou responsável pelo que escrevo!!! E não pelo que você entende !!!
fabim
Dword
 
Mensagens: 5001
Registrado em: 16 Out 2006 10:18
Localização: aqui uái!!!?

Mensagempor vtrx » 19 Abr 2011 11:35

Eu uso API no Windows para a comunicação ,tanto no Delphi como no C++.
Não gosto de ter que fazer Drivers e usar Dll na aplicação do Cliente.
O pessoal gosta mesmo é de clikar no Exe e sair usando,LOL.
O Mikro C usa,se não me engano,as rotinas em ASM da Microchip.
Pontos que acho ruim no Mikro c.
A implementação de rotinas em ASM,são muito restritas,o próprio pessoal d Mikro C comentou que não se deve comparar com o MPLAB,pois o MPLAB é muito superior.
As rotinas prontas (LIbs),são muito genéricas,a do PS2 por exemplo,pede uma frequencia de clock de pelo menos 6 MHZ e não é 'Full Duplex'.
Por outro lado,para quem ta aprendendo é muito simples ja sair testando uma comunicação com dispositivos.
Quando começei a estudar USB,eu ia usando oMikro C com sua Lib HID pronta,para saber se eu estava errando no Soft ou no Hard,até desenvolver (junto com os exemplos da Microchip),um código Full em ASM.
PS:Me parece que o MikroC foi desenvolvido em Delphi,ja que seu utilitário para se comunicar com sua Lib no HID foi feito usando o componente Jedi/Delphi.
Avatar do usuário
vtrx
Dword
 
Mensagens: 2239
Registrado em: 20 Abr 2008 21:01

Mensagempor fabim » 19 Abr 2011 13:04

isso mesmo.
todas as ides da mikroE, foram feitas usando o mesmo escopo em delphi!!!
hehe, eu até tenho os componentes pra deixarem os programas exatamente com aquela cara !!! hihihi..
O KEIL Uvision, também foi feito no BORLAND C++!!

Digo delphi/ borland. Pois os componentes são 100% compativeis, pois todos os componentes tem o seu type em C++, tanto no delphi pascal, quanto no borland C++.

Muitcho loco!!!

"PS2 por exemplo,pede uma frequencia de clock de pelo menos 6 MHZ e não é 'Full Duplex'. "
Eu nunca vi PS2 full duplex, nem sabia que existia isso. é algum tipo de comunicação dedicada ? tipo para aqueles teclados antigos que tinha até o F24, e mais um zilhão de teclas ?

Abraços !!
Mano, ve só.
Sou responsável pelo que escrevo!!! E não pelo que você entende !!!
fabim
Dword
 
Mensagens: 5001
Registrado em: 16 Out 2006 10:18
Localização: aqui uái!!!?

Mensagempor vtrx » 19 Abr 2011 18:30

Foi uma força de expressão no pS2.
Veja,voce pode ter um código que apenas Lê os caracteres de um teclado.
Voce pode ter um código que apenas Envia comandos para umPC.
E finalmente voce pode ter um 'Full' que da Boot no Pc,responde a Caps Lock,Num Lock e Scrooll Lock (Leds) e tanto envia como recebe comandos.
Avatar do usuário
vtrx
Dword
 
Mensagens: 2239
Registrado em: 20 Abr 2008 21:01

Anterior

Voltar para Circuitos Diversos

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante

cron

x