Forum: Mikrocontroller und Digitale Elektronik Unerwünschte Interruptauslösung


von Paarthurnax (Gast)


Lesenswert?

Hallo Leute,

ich habe eine Interrupt On Change Funktion eingebaut und die 
funktioniert mit einem Taster. Sobald ich den Taster betätige, wird am 
Pin 3 eine positive Flanke erzeugt und mein Interrupt wird ausgelöst 
(kontrolliere mit einer Variable). Das funktioniert auch einwandfrei. 
Doch sobald ich in meinem Programm mein PWM Modul wieder einschalte, 
wird immer ein Interrupt ausgelöst, obwohl ich den Taster nicht 
betätige. Ich habe bis auf den Hauptinterruptschalter und den Interrupt 
On Change Schalter alle Interrupts ausgeschaltet (Peripherie etc.). Ich 
hab den Fehler eingegrenzt und es liegt am CCPR1L Register, sobald der 
Wert in diesem Register größer gleich 65 beträgt, wird mein Interrupt 
ausgelöst. Doch ich verstehe wirklich kein bisschen wieso bei einem Wert 
von ab 65??? mein Interrupt ausgelöst wird. Ich habe im Datenblatt 
gelesen, dass im Capture Mode durch Flanken Interrupts ausgelöst werden, 
aber ich habe ja PWM Mode gewählt und auch alle entsprechenden Interrupt 
enable bits ausgeschaltet. Ich benutze den PIC12F1822 und dieser µC hat 
nur eine Interrupt Funktion und dieser frage ich zusätzlich mit if ab, 
ob IOCIF == 1 ist. Ich hoffe, dass ihr mir helfen könnts.

Mit freundlichen Grüßen

Paarthurnax

von Stefan (Gast)


Lesenswert?

Hast Du bedacht, dass die Kontakte von Tastern beim Betätigen und 
loslassen prellen, also mehrere Impulse abgeben?

von Paarthurnax (Gast)


Lesenswert?

Ja schon, aber wenn ich neucompiliere und programmiere und GAR NICHT den 
Taster betätige, wird auch ein Interrupt ausgelöst und wenn ich mit dem 
Multimeter messe, ist an diesem Pin kein High Signal.

von Walter S. (avatar)


Lesenswert?

ist ein Pullup am Eingang?

von Karl H. (kbuchegg)


Lesenswert?

>> Multimeter messe, ist an diesem Pin kein High Signal.

> ist ein Pullup am Eingang?

in diesem Fall natürlich ein Pulldown.

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.