mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Keyboard / INT Problem


Autor: Karl Katt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

Habe ein PS2 Keyboard an einen 8051 angeschlossen.
DATA auf P1.5
CLOCK auf /INT0 (P3.2)
Vcc und GND entsprechend

Nun mache ich folgendes:

EA = 1 (interrupts enable)
EX0 = 1 (int0 enable)
IT0 = 1 (react on falling edge)
CLK = 1   (keyboard only sends if clk & data are 1)
DATA = 1   (~)

Jetzt hab ich mir eine interrupt 0 funktion geschrieben,
die nix macht, außer das da ein breakpoint drin ist.

Problem ist, er springt dort nie rein. Sobald ich ne Taste
drücke müsste das keyboard doch ein clk signal senden und der
controller in die interrupt behandlung springen, oder?

Habe ich was vergessen?

Danke
Karl

Autor: Benedikt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Initialisierung vom Keyboard ?

Autor: Tobi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Karl Katt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Muss ich das so connecten wie auf der Seite von Tobi beschrieben mit
Kondensatoren oder geht es auch einfach die leitungen an den uC
anzuschließen so wie es in den atmel application notes z.b. beschrieben
steht?

Danke.

Autor: Benedikt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Da der 8051 quasi Open Collector Ausgänge hat, kannst du die Leitungen
direkt anschließen.
Wie gesagt: Einige Tastaturen funktionieren nur, nachdem sie
initialisiert wurden. D.h. nach dem Einschalten senden sie eine Meldung
an den PC, der darauf mit einer Bestätigung und meistens mit der
Initialiaiserung antwortet. Nur dann funktionieren die Tastaturen.

Autor: Karl Katt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Heißt quasi open collector ausgänge das ich sowohl ein signal von der
tastatur empfangen kann sowie ein signal vom uC auf die leitung legen
kann?
"D.h. nach dem Einschalten senden sie eine Meldung" -> müsste das
nicht schon den interrupt auslösen? Oder schalt ich die interrupts
vielleicht zu spät ein und krieg das signal deswegen nicht?

Danke

Autor: Benedikt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Heißt quasi open collector ausgänge das ich sowohl ein signal von der
>tastatur empfangen kann sowie ein signal vom uC auf die leitung legen
>kann?
Ja, immer wenn ein Bit auf High gesetzt ist, ist es als Eingang
verwendbar.

Nach dem Selbststest der Tastatur sendet diese den Wert AA und zeigt
an, dass der Test erfolgreich war. Es müsste also eigentlich ein
Interrupt kommen. Poste mal den Code.

Autor: Karl Katt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
sbit CLK = P3^2;
sbit DAT = P1^2;

void esr0_int() interrupt 0
{
   counter++;    //hier ist ein breakpoint
}

void main()
{
 IT0 = 1;
 EX0 = 1;
 EA = 1;

 DAT = 1;
 CLK = 1;

 while(1);
}

Ich hab den Code leider nicht hier, aber so ungefähr sieht er aus.
Hängt ne Tastatur dran, springt er nie zum breakpoint. Setz ich den
Interrupt per hand mit nem 10k pullup widerstand springt er bei
absteigender taktflanke rein.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.