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
Hast Du bedacht, dass die Kontakte von Tastern beim Betätigen und loslassen prellen, also mehrere Impulse abgeben?
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.
>> 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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.