Hallo, wir versuchen gerade eine Impulsdauer mit Hilfe des Timers T3 und des Capturepins IC2 zu erfassen. Das Signal liegt am Pin14 (IC2) an. Der Timer ist so konfiguriert, dass er einfach von 0 bis zum Maximalwert von 65535 zählt. Der Interrupt für den IC2 ist auf steigende Flanke konfiguriert, aber er kommt leider nicht. Hier ist der Codeausschnitt: // Input Capture TMR3 = 0; // zählregister auf 0 PR3 = 0xFFFF; // maximum count time T3CON = 0x8000; // TCS = 0: interner Takt; IC2CON = 0x0003; // Interrupt nach jeder steigenden Flanke IFS0bits.IC2IF = 0; // Clear the IC2 interrupt flag bit IEC0bits.IC2IE = 1; // Set the IC2 interrupt enable bit while(1) //Loop forever { } void __attribute__((interrupt, no_auto_psv)) _IC2Interrupt(void) { //Code für Capture IFS0bits.IC2IF = 0; }
Keiner eine Idee, was da falsch sein könnte...? Oder passt der Code?
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.