M16C- Key Input Interrupt

Gast #29427
Lesenswert?

Hallo,

ich verwende einen M16C/6N0 (M306NaFGTFP). An die Ports
P10.0 -P10.2 sind die Zeilen einer Matrix - Tastatur angeschlossen. Die 
Spalten sind an P0.0 - P0.2.
Die 4. Zeile ist amn P10.5 angeschlossen, da dieser Port KI1 ist wollte 
ich den Key Input Interrupt nutzen.

Ich habe die ungenutzten KI0,KI2,KI3 auf Output gesetzt.
KUPIC = 0x03; hat ein entsprechendes Interruptlevel bekommen.
Die internen Pull-ups der Ports habe ich nicht verwendet da die Zeilen 
über Wiederstände an 5Volt hängen.

Per KUPIC_IR = 1; kann ich den Interrupt auch per Software auslösen, 
aber leider wird durch Tastendruck kein Interrupt
generiert.

Könnte das Problem, daran liegen, dass ich nur eine Spalte
an KI geschaltet ist? (Ich habe natürlich die entsprechende Taste 
gedrückt die den Interrupt auslösen müßte)

Vielleicht verwendet jemand ja die Key Input Interrupts und könnte mir 
die Schaltung und das bisschen Software zeigen .


Vielen Dank Michael
Gast #29432
Lesenswert?

/*
If the direction register of any of P104 to P107 is set for input and a 
falling edge is input to that port, a key
input interrupt is generated.
*/

Sagt eingentlich aus das es bei Dir gehen müste.
Der M16C6N hat dieses "Funtion select register C" nicht (bin ich von 
ausgegangen, da der M16C80 den hat). Tut mir leid wenn Du da nun 
tagelang nach gegraben hast.


Zusammenfassend:
A  Du hast den Interruptvektor gesetzt
B  Du hast den Interruptlevel angegeben  KUPIC=0x0B (level 3, interrupt 
ein)
C  Du hast eine neg. Flanke an /KI1 Pin P10_1
  und trotzdem löst kein Interrupt aus

Bist Du sicher das Du wirklich den P10_1 wirklich als Eingang(Bedingung 
D) definiert hast?

Wenn A..D erfüllt sind, löst der Interrupt aus

Reiner
Gast #29436
Lesenswert?

Hallo Matthias,

danke für die Infos. Ich nutze den Tasking M16C Compiler, der bei dem 
Glyn Demoboard dabei ist. Die sect30.inc Datei gibt es da auch und darin 
ist der key_interrupt und alle Uart-Interrupts  umgebogen. Ich probiere 
noch ein wenig rum ,aber werde wohl ohne  Interrupt auskommen.

Gruß GLH

PS: Deine Ansteuerung eines SED1335 klingt sehr interessant, da ich hier 
ein 160x160 Display mit SED1330 rumliegen habe, dass auch noch 
angesteuert werden will.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren