Hallo
Inzwischen funktioniert es mit einer Tastatur ganz gut:
Mit der Maus funktioniert das seltsamerweise nicht. Dein Programm habe ich nicht getestet. Ich bin aber noch dran.Code:// PS/2-Schnittstelle am ATMega32 1.4.2009 mic // RP6 liest AT-Tastatur am I2C-Port // http://www.marjorie.de/ps2/ps2_protocol.htm // http://www.beyondlogic.org/keyboard/keybrd.htm #include "RP6RobotBaseLib.h" uint8_t i, scancode; int main(void) { initRobotBase(); DDRC &= ~3; //SDA und SCL sind Eingänge PORTC &= ~3; // ohne interne PullUps (extern sind 4k7 PullUps angeschlossen) while(1) { i=0; scancode=0; while(PINC & 1); // Warten auf Startbit while(!(PINC & 1)); // Ende Startbit do { while(PINC & 1); // Tastatur bereitet die Daten vor if(PINC & 2) scancode |= (1<<i); // Bit einlesen i++; while(!(PINC & 1)); // gelesen, auf nächstes Bit warten }while(i<8); while(PINC & 1); // Warten auf Paritybit while(!(PINC & 1)); // Ende Paritybit while(PINC & 1); // Warten auf Stopbit while(!(PINC & 1)); // Ende Stopbit writeInteger(scancode, 16); writeChar('\n'); } return(0); }
Gruß
mic







Zitieren

Lesezeichen