AVR 128 ICR-Flag-Problem

OP #1038709
Hi
Hab ein (kleines?!) Problem mit dem Input-Capture-Interrupt des AVR128.
Nachdem ich ihn konfiguriert habe (siehe Code unten bzw Screenshot) 
läuft der Timer1 schon mal, aber er reagiert nicht darauf wenn ich den 
IC-Pin auf '0' setze.
Das IC-Interrupt-Flag wird einfach nicht gesetzt, obwohl der PIND4 die 
richtigen Pegel erkennt und auch übernimmt!

Hab natürlich den Globalen Interrupt freigegeben, die TIMSK gesetzt, die 
Flanke und den Prescaler gewählt und die IC-Quelle (beim 128 kann der IC 
auch vom Analog-Komparator getriggert werden) auf den PIND.4 
eingestellt.
Weiters hab ich schon einen anderen Controller ausprobiert, bei dem ist 
dasselbe (also auch kein def. Chip).

Der Interrupt wird, wenn ich das Flag händisch beim Debuggen setze, 
fehlerfrei ausgeführt.

Wollt jetzt fragen ob irgendwem noch was auf- oder einfällt warum das 
Flag nicht gesetzt wird.

glg Sgix



Hier noch meine Funktion zum Einstellen des IC:

inline void InputCaptureInit(void)
{
  TCCR1A = 0x00;
  /* Input capture noise canceler on, falling trigger edge, prescaler = 
1 */
  TCCR1B = (1<<ICNC1)|(0<<ICES1)|(0<<CS12)|(0<<CS11)|(1<<CS10);
  /* Input capture pin configured to input */
  cbi (IC_DD_REG, IC_PIN);
  /* Enable pullup on IC pin */
  sbi (IC_PORT_REG, IC_PIN);
  /* Enable input capture interrupt */
        sbi(TIMSK, TICIE1);

  /* Clear registers */
  TCNT1 = 0x0000;
  ICR1 =   0x0000;
}
Angehängte Dateien:
OP #1038931
Danke!
War ein Problem des Debuggers. Er "übersieht" beim Durchsteppen die 
Flanke am Eingang und somit auch das Interrupt-Flag, das nur einen Takt 
anliegt.
Dieses Problem tritt auch bei Output-Compare auf.
Man muss halt den Interrupt einstellen und einen Break-Point in die ISR 
setzen um debuggen zu können.

thx nochmal

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 18 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.