this program is based on the PS/2 keyboard library and the LCD library, the lcd display whatever input is coming from the PS/2 keyboard.

Dependencies:   TextLCD mbed

PS2Kbd.cpp

Committer:
edwinb
Date:
2011-01-30
Revision:
0:3774ff2f9a59

File content as of revision 0:3774ff2f9a59:

#include "PS2Kbd.h"
#include "mbed.h"


/* ==================================================================
 * Constructor
 ================================================================= */

PS2Kbd::PS2Kbd(PinName clk, PinName din) 
    : _ps2clk(clk), _ps2din(din) {
   
}    

// =============================
// 
// =============================
unsigned char PS2Kbd::rd(void)
{
    unsigned int buf = 0x00;
    int i;
    
    _ps2clk = 0;

    // both input
    _ps2din.input();
    _ps2clk.input();

    for(i=0;i<11;i++) {
        while(_ps2clk);
        while(!_ps2clk);
        buf = buf >> 1;
        buf |= _ps2din ? 512 : 0;
    }

    // output
    _ps2clk.output();

    buf &= 0xFF;

    return(ps2KeyMap[(unsigned char)buf]);
    //return (unsigned char)buf;
}


// =============================
// 
// =============================
void PS2Kbd::wr(unsigned char)
{
    unsigned int buf = 0x00;
    int i;
    
    _ps2clk = 0;

    // both input
    _ps2din.input();
    _ps2clk.input();

    for(i=0;i<11;i++) {
        while(_ps2clk);
        while(!_ps2clk);
        buf = buf >> 1;
        buf |= _ps2din ? 512 : 0;
    }

    // output
    _ps2clk.output();

    buf &= 0xFF;

}