Forum: Mikrocontroller und Digitale Elektronik Interrupt Fehler mit 80C517A


von Tom (Gast)


Angehängte Dateien:

Lesenswert?

Hallo Zusammen,

ich wollte einen Interrupt mit einer fallenden Flanke auslösen jedoch
hat es in meinem Programm nicht funktioniert.
Nun habe ich ein Programm geschrieben wo ich das Interruptflag per
Software setze und es funktioniert auch nicht.
Bei anderen Interrupteingängen habe ich es probiert dort funktioniert
mein Programm.Nur mit den Eingängen P3.2 und 3.3 funktioniert nichts.
Ich kann auch nicht auf einen anderen Eingang wechseln das dieser P3.3
dafür hardwaremässig vorgesehen ist.
Kann mir jemand sagen was ich falsch programiere bzw. nicht
programmiere?

Danke schon mal für die Antwort.

Tom

von Peter D. (peda)


Lesenswert?

Der externe Interrupt EX1 geht auf Vektor 2 und nicht 10.

Und für die fallende Flanke mußt Du erst IT1 setzen.

Ich glaube nicht, daß das beim 517 völlig umgemodelt ist gegenüber dem
standard 8051.

Den 517 kenne ich nicht, da mir alles zu umständlich ist
(Platinenlayout, Kosten), was nicht Flash ist.


Peter

von Tom (Gast)


Lesenswert?

Soooorrrry,

ein kleiner Fehler der sich eingeschlichen hat als ich verschiedene
Interrupts versucht habe.
Ich habe es mit Vektor2 getestet muss ich auch setzen wenn ich eine
falende Flanke erkennen will.Jedoch setze ich ja direkt das IE1 bit und
erzeuge dadurch den Interrupt hat zuminderst bei allen anderen Interrupt
eingängen funktioniert(P1.0,P1.1,Timer1 usw.).
Trotz das alles richtig ist funktioniert das mit dem Interrupt nicht.
Habe schon mit dem Oszi direkt am Port gemessen.

Gibt es etwas besonderes zu beachten da dieses Problem nur an den Ports
3.3 und 3.2 auftritt und diese Hardwaremässig gleich sind?

Gruss

Tom

von Tom (Gast)


Lesenswert?

Hat niemand Erfahrung!!!!!!

Habe es schon auf einem zweiten board getestet da ich dachte etwas ist
defekt jedoch das gleiche Ergebnis.

TOM

von Thomas K. (thkais)


Lesenswert?

Ich weiß nicht, ob Dein Compiler das auch benötigt, aber ich muß
Variablen, die ich im Interrupt benutze, "volatile" definieren,
also:

volatile unsigned char wert=0;

Der von mir genutzte AVRGCC optimiert sonst die Zugriffe auf die
Variable.

von Tom (Gast)


Angehängte Dateien:

Lesenswert?

@thomas,

Interrupt Variable sind schon richtig da ich ja andere Interrupts auch
ansprechen kann nur P3.3 und 3.2 nicht.
Ist bei denen etwas besonderes zu beachten.
Ach hier nochmal das bereinigte Programm.

Ich hoffe jemand kann mir helfen!!!!!!!!!:-)

Thomas

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.