Ich habe folgendes Programm am atmega8 getestet:
http://www.rn-wissen.de/index.php/PS/2_-_Schnittstelle
Wenn ich eine Taste mehrfach betätige, wird jedes mal ein anderer Wert ausgegeben?
Die Routine mit Getatkbd() liefert immer den gleichen CODE.
$regfile = "m8def.dat" und Taktfrequenz habe ich angepasst.
Woran könnte es denn noch liegen?
Steffen
Nachdem mein Programm Unsinn ausgab habe ich:
1. Hardware überprüft: ok
2. Überprüft, ob der Fehler reproduzierbar ist: Ist er!
3. Die Variablen in den Unterprogrammen ausgelesen und angezeigt.
Bei dem Eingriff in die ISR änderten sich plötzlich die Werte => Zeitproblem?
4. Taktfrequenz von 1MHz auf 8MHz RC-Oszillator geändert => Es werden ordentliche Werte ausgegeben!
Auch wenn die Clockfrequenz "nur" ca. 10Khz beträgt, ist offensichtlich die ISR zu lang, um diese bei 1MHz abzuarbeiten.
Steffen
Lesezeichen