reducing shiftout clock freq and PS2/PC interfacing ....


Closed Thread
Results 1 to 19 of 19

Hybrid View

  1. #1
    skimask's Avatar
    skimask Guest


    Did you find this post helpful? Yes | No

    Default

    As noted in Post #2, to get a key to be read by a PS/2 port, you have to send a MAKE and a BREAK scan code.
    Looking at your code, I only see 8 data bits, some timing, etc. being sent.
    Sayzer gave you good code to work with, but that's only half the battle.
    And besides, shiftout should work just fine, as long as you send the right codes (see first line of this post)...

    Also, you can shorten that up by quite a bit: (yes, here I go with my colons again!)

    Code:
    device 16f877a
    input portb.1:input portb.0:input portd.2:stopbit var bit:startbit var bit
    parity var bit:temp var byte:dattime var byte:clktime var byte
    tempbit var bit:stopbit=1:startbit=0:parity=0:Temp=$15:DatTime=10
    ClkTime=50
    main:     if portd.2=0 then main
    output portb.1:output portb.0:tempbit=startbit:gosub sendbit:tempbit=temp.0
    gosub sendbit:tempbit=temp.1:gosub sendbit:tempbit=temp.2:gosub sendbit
    tempbit=temp.3:gosub sendbit:tempbit=temp.4:gosub sendbit:tempbit=temp.5
    gosub sendbit:tempbit=temp.6:gosub sendbit:tempbit=temp.7:gosub sendbit
    tempbit=parity:gosub sendbit:tempbit=stopbit:gosub sendbit
    INPUT portb.1:INPUT portb.0:goto main
    sendbit:     portb.1=1:pauseus dattime:portb.0=tempbit:pauseus dattime:portb.1=0
                    pauseus clktime:return
    END

  2. #2
    Join Date
    Jan 2006
    Location
    Istanbul
    Posts
    1,185


    Did you find this post helpful? Yes | No

    Default

    Wireless,

    Freezing computer seems to be having Data and Clk lines reversed.

    Either in your code, or in your hardware, change them.

    Also, make sure, you remove your PS/2 Keyboard while testing this. Some people try to use them in parallel as I do not understand how they expect it to work??

    Also, as Skimask stated, it is a code to work on.
    If you like to send 'q' then you should send $15,$F0,$15.
    $15 is 'q' as pressed Key.
    $F0,$15 is 'q' as released Key.

    You should consider this procedure in your code.
    "If the Earth were a single state, Istanbul would be its capital." Napoleon Bonaparte

  3. #3


    Did you find this post helpful? Yes | No

    Default

    skimask
    I made what you said by inserting a break code after the make but the two problems are still there :

    1- the Computer still freezing !!! <-- why is that ?
    " and the computer give a note that no keyboard exict " !!!

    2- the character still not appears .

    is it a hardware problem !!!

    by the way thanks for your tring and I hope you can find an answer for me
    Last edited by wireless magic; - 31st January 2008 at 22:08.

  4. #4
    Join Date
    Aug 2006
    Location
    Look, behind you.
    Posts
    2,818


    Did you find this post helpful? Yes | No

    Default

    Hello Wireless Magic,
    to save yourself some agravation of having Windoze lock, have you tried booting to a command prompt only? Even better use a DOS startup disk. If your hardware is off it likely will not lock up it just won't work.
    If you do not believe in MAGIC, Consider how currency has value simply by printing it, and is then traded for real assets.
    .
    Gold is the money of kings, silver is the money of gentlemen, barter is the money of peasants - but debt is the money of slaves
    .
    There simply is no "Happy Spam" If you do it you will disappear from this forum.

  5. #5
    Join Date
    Jul 2003
    Location
    Colorado Springs
    Posts
    4,959


    Did you find this post helpful? Yes | No

    Default

    It takes more than just sending keystrokes via the PS2 protocol.

    When the PC is booting, the keyboard must send and receive several commands to tell the PC what it is, what mode it's using, etc.

    Go to the link Sayzer gave in post #4, then click on "PS/2 Keyboard Interface".
    Look at the Command Set/Initialization sections at the bottom.

    It's possible to place the device in parallel with an existing keyboard, so the keyboard does all the initializing.
    But if you don't want the keyboard, you'll need to do it all yourself.

    Not as easy as just toggling a couple pins with the right timing.
    <br>
    DT

  6. #6
    skimask's Avatar
    skimask Guest


    Did you find this post helpful? Yes | No

    Default

    Quote Originally Posted by Darrel Taylor View Post
    When the PC is booting, the keyboard must send and receive several commands to tell the PC what it is, what mode it's using, etc.
    Ahhhhhhhh.......
    The O/P didn't state specifically if he/she was using the keyboard alone or in parallel...good point...
    However (we've been down this road before somewhere), there should be a setting in BIOS called something like 'Halt on All Disk/Keyboard' errors or something like that and it can usually be shut off. Should take care of the freezing problem. But since the keyboard hasn't been recognized, it still won't work

  7. #7
    Join Date
    Sep 2004
    Location
    montreal, canada
    Posts
    6,898


    Did you find this post helpful? Yes | No

    Default

    I confirm what Darrel's said. There's a lot of things to do before it work as expect.

    I already suggested awhile back to build a PS-2 sniffer and log the whole data exchange from the boot... to the end. It's more than a stupid BIOS setting. In fact.. you have to confirm your Keyboard is there, and it's self test is passed.

    Not that hard.. not that easy.

    If you have any protocol analyzer or digital storage scope (PoScope, Bitcope, USBee) that will be easier.

    For safety sake, you can't use Shiftin/Shiftout AS-IS. You need to toggle TRIS instead of trashing a pin to high or low.

    Note: A PC may work slightly different from a Laptop.

    This said.. this should be enough food for thought
    Steve

    It's not a bug, it's a random feature.
    There's no problem, only learning opportunities.

  8. #8


    Did you find this post helpful? Yes | No

    Unhappy what Now !!

    sayzer

    1st thanks becouse you are still tring with me and didn't give up , really thanks.

    ok lets see there , Clock and data reversed hmmm I looked at it and nothing wrong neither in the code or hardware !

    and I have inserted the break code after the make and still :

    " freezing and the 'q' didn't appears "


    I don't think the problem is from the code "software"

    but I'm not sure if those problem due hardware

    hmmmm..is there any hardware issues should be token in our consideration !!!

    still need any information that can help me to make a single character appears on the screan !!!

    I should change my name into keyboard magic looooooooool .

Members who have read this thread : 0

You do not have permission to view the list of names.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts