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.