TODOPIC
Microcontroladores PIC => Lenguaje Basic para microcontroladores PIC => Mensaje iniciado por: hexmotion en 06 de Enero de 2005, 14:29:00
-
Hola

el problema es que...:
Estas lineas de codigo en algun tiempo funcionaba bien con una maquina pentium I a 300Mhz y DIN de 5 pines normal, es decir del grande...
Pero No me quiere trabajar con una con entrada para teclado tipo PS/2 Minidin...
Alguien Podria ayudarme por fa?
" Emulacion de teclado de PC
DEFINE OSC 16 "para "alentar" al shiftout en realidad trabaja a 4
char var Word "character
datpin var porta.0 "Keyboard Data "con res 10k pull up
clkpin var porta.1 "Keyboard Clock "con res 10k pull up
delayer con 100 "retardo entre caracteres
trisa =0
high datpin
high clkpin
"estos son los caracteres a transmitir mas info en :http://www.beyondlogic.org/keyboard/keybrd.htm
h var word : h = %11001100110
o var word : o = %11010001000
l var word : l = %11010010110
a var word : a = %10000111000
start:
"Mandando "hola " Eternamente
char=h "/h : gosub sendchar : pause delayer
char=o "/o : gosub sendchar : pause delayer
char=l "/l : gosub sendchar : pause delayer
char=a "/a : gosub sendchar : pause delayer
goto start
sendchar:
shiftout datpin,clkpin,0,[char11]
pause 10
return
end
El resultado deberia ser un HOLA continuo en el bloc de notas (en la maquina vieja asi lo hacia)
Ahora el resultado es un continuo pitido del altavoz del PC y solo sale una "h"
sera la velocidad; ya intente redefiniendo el OSC pero nada, aveces no me aparece nada solo el sonido, de antemano gracias; existe otra forma de emular el teclado...?
-
Que onda hexmotion,
podrias probar reduciendo el reloj con :
DEFINE SHIFT_PAUSEUS 100
Salu2
Proyectos similares:
Mouse ps2:
http://panda.cs.ndsu.nodak.edu/%7Eachapwes/PICmicro/code/code.html
PS2 Teclado:
http://users.picbasic.org/Howto/PC_keybrd/pc_keyboard.htm
-
he probado con lo que dices con similares resultados
de hecho he notado que creo k la version k tengo (2.44) no entiende
este DEFINE ya que en el file New.txt el DEFINE
mas nuevo es el OSC24, kotra cosa puedo hacer Lager?
a paritr de k version funciona este dEFINE?
-
Que onda pana,
probaste a mayor retardo? DEFINE SHIFT_PAUSEUS 500
La version 2.44 si soporta este define pana, otra cosa(seria muy jodon de parte del compilador pero esto ya me a pasado) Quita ese cero del mode y ponlo como debe de ir con LSBFIRST y agrega en el principio despues del osc la libreria MODEDEFS.BAS , no vaya siendo que a fuerza tiene que ser variable el MODE.. (no seria nada raro...)
Solo revizalo a distintas velocidades y agregando lo que te dije.. si sigues con el problema lo solucionamos a la forma FOROTODOPIC, pero de que va a funcionar va a funcionar. Otra cosa, dejalo con los tiempos normales, si estas usando un 16f84 a 4 mhz dejalo asi definido como 4 mhz, una cosa mas, el codigo que posteaste asi lo usabas? y para que tipo de pic??...
Un abrazo pana
-
he utilizado el retarod hasta 60000 y parece como si no hubiera tal porque
estoy debugeando con hyper terminal poniendo serouts dentro y fuera de la rutina sendchar, pero al parecer lo que esta mal es que no son compatibles los teclados viejos (los de din 5 grande) y los modernos con conector tipo ps2,, de todas maneras seguire probando... gracias por los links