SAM4S: Messung Periodendauer: Ständiger INT

OP #7552367
Lesenswert?

Hallo, ich versuche mit SAM4S die Periodendauer auf TIOA mit TC0 Kanal 0 zu messen. In dem TC0_Handler lese ich RA ein. Die Periodendauer wird auch korrekt gelesen. Wenn ich in diesem Handler aber einen Portpin toggle, sehe ich dass der Handler ständig (630 kHz) angesprungen wird, obwohl die Frequenz auf TIOA ganz niedrig ist. Im Debugger-Fenster-I/O:

  • TC0-TC_CMR0: External Trigger Edge Selection "Rising Edge" (0x01)
  • TC0-TC_CMR0: RA Loading Edge Selection "Rising Edge of TIOA" (0x01) Wenn ich eine von beiden Einstellungen auf 0x00 setze, wird der Handler gar nicht mehr angesprungen. Ich habe den Verdacht, dass der Handler den Interrupt nicht von selbst löscht. Ich habe aber in der Timerregistern keines gefunden, wo man den/das Interupt(-Flag) löschen könnte. Wo ist mein Fehler? Wo kann ich noch schauen?
#7552420
Lesenswert?

Alex schrieb:

Ich habe den Verdacht, dass der Handler den Interrupt nicht von selbst löscht. Ich habe aber in der Timerregistern keines gefunden, wo man den/das Interupt(-Flag) löschen könnte.

Ich kenne diesen Processor nicht, normalerweise ist es aber so: Wenn ein Interrupt immer wieder kommt, dann liegt das daran, dass er immer wieder neu ausgelöst wird. Ein Auslösen erfolgt nur als Reaktion auf die gewählte externe oder interne Interrupt-Quelle. Mit Interrupt-Flags kann man keine Auslösung bewirken.

Jedenfalls: Ohne Source (einschl. kompletter Initialisierung) und Details über die Beschaltung weiß keiner, was da überhaupt programmiert ist.

OP #7552424
Lesenswert?

Rolf schrieb:

Wenn ein Interrupt immer wieder kommt, dann liegt das daran...

Danke für deine Antwort. Du hast wahrscheinlich nicht gesehen, dass ich das Problem selbst lösen konnte. (s.o.) Hier wird der Interrupt nicht in Hardware durch anspringen des Handlers gelöscht. Man muss das Statusregister lesen um den INT zu löschen. Da ich das nicht wusste, blieb der Status auch im Handler erhalten und so wird der Handler ständig aufgerufen.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren